703
edits
|  (Created page with " == Code C ==   == Objekt Ball ==") |  (→Code C) | ||
| Line 2: | Line 2: | ||
| == Code C == | == Code C == | ||
| Ball[] ball = new Ball[15]; | |||
| int a,b,c; //Abstände der Ebenen | |||
| void setup() { | |||
|   size(1280,1024); | |||
|   //size(1920,1200); | |||
|   smooth(); | |||
|   noStroke(); | |||
|   colorMode(HSB,360,100,100,100); | |||
|   a = 500; //700 Größe der ersten Ebene | |||
|   b = 400; //600 Größe der zweiten Ebene | |||
|   c = 40; //60 Lücke | |||
|   for (int i=0; i < 5; i++) { | |||
|     ball[i] = new Ball(); | |||
|     //in erster Ebene | |||
|     ball[i].x = random(ball[i].g1,a-ball[i].g1); | |||
|     ball[i].y = random(ball[i].g2,height-ball[i].g2); | |||
|     //Farbe | |||
|     ball[i].h = (int)random(360); | |||
|   } | |||
|   for (int i=5; i < 10; i++) { | |||
|     ball[i] = new Ball(); | |||
|     //in zweiter Ebene | |||
|     ball[i].x = random(a+c+ball[i].g1,a+c+b-ball[i].g1); | |||
|     ball[i].y = random(ball[i].g2,height-ball[i].g2); | |||
|     //Farbe | |||
|     ball[i].h = (int)random(360); | |||
|   } | |||
|   for (int i=10; i < ball.length; i++) { | |||
|     ball[i] = new Ball(); | |||
|     //in dritter Ebene | |||
|     ball[i].x = random(a+c+b+c+ball[i].g1,width-ball[i].g1); | |||
|     ball[i].y = random(ball[i].g2,height-ball[i].g2); | |||
|     //Farbe | |||
|     ball[i].h = (int)random(360); | |||
|   } | |||
| } | |||
| void draw() { | |||
|   background(0); | |||
|   fill(255); | |||
|   rect(a,0,c,height); | |||
|   rect(a+c+b,0,c,height); | |||
|   for (int i=0; i < 15; i++) { | |||
|     ball[i].position[0] = ball[i].x-ball[i].g1/2; | |||
|     ball[i].position[1] = ball[i].x+ball[i].g1/2; | |||
|     ball[i].position[2] = ball[i].y-ball[i].g2/2; | |||
|     ball[i].position[3] = ball[i].y+ball[i].g2/2; | |||
|   } | |||
|   for (int i=0; i < 5; i++) { | |||
|     //Bewegen | |||
|     if (ball[i].angle <= 360) { | |||
|       ball[i].angle -= 2; | |||
|     } | |||
|     if (ball[i].angle <= 0) { | |||
|       ball[i].angle = 360; | |||
|     } | |||
|     //im Bogen | |||
|     ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6; | |||
|     ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6; | |||
|     ball[i].x = ball[i].x + ball[i].vx; | |||
|     ball[i].y = ball[i].y + ball[i].vy; | |||
|     //Ballgröße zurücksetzen | |||
|     if (ball[i].g1 != 90) { | |||
|       ball[i].g1 = 90; | |||
|     } | |||
|     //Rand oben | |||
|     if (ball[i].x <= 0+ball[i].g1/2) { | |||
|       ball[i].angle = 60; | |||
|     } | |||
|     //Rand unten | |||
|     if (ball[i].x >= a-ball[i].g1/2) { | |||
|       ball[i].angle = 180; | |||
|       ball[i].g1 = ball[i].g1-20; | |||
|     } | |||
|     //links raus | |||
|     if (ball[i].y <= 0-ball[i].g2) { | |||
|       ball[i].y = height+ball[i].g2/2; | |||
|     } | |||
|     //rechts raus | |||
|     if (ball[i].y >= height+ball[i].g2) { | |||
|       ball[i].y = 0-ball[i].g2/2; | |||
|     } | |||
|     ball[i].maleBall(); | |||
|     //Bälle stoßen aneinander | |||
|     for (int j=i+1; j < 5; j++) { | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|     } | |||
|   } | |||
|   for (int i=5; i < 10; i++) { | |||
|     //Bewegen | |||
|     if (ball[i].angle <= 360) { | |||
|       ball[i].angle -= 3; | |||
|     } | |||
|     if (ball[i].angle <= 0) { | |||
|       ball[i].angle = 360; | |||
|     } | |||
|     //im Bogen | |||
|     ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6; | |||
|     ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6; | |||
|     ball[i].x = ball[i].x + ball[i].vx; | |||
|     ball[i].y = ball[i].y + ball[i].vy; | |||
|     //Ballgröße zurücksetzen | |||
|     if (ball[i].g1 != 90) { | |||
|       ball[i].g1 = 90; | |||
|     } | |||
|     //Rand oben | |||
|     if (ball[i].x <= a+c+ball[i].g1/2) { | |||
|       ball[i].angle = 60; | |||
|     } | |||
|     //Rand unten | |||
|     if (ball[i].x >= a+c+b-ball[i].g1/2) { | |||
|       ball[i].angle = 180; | |||
|       ball[i].g1 = ball[i].g1-20; | |||
|     } | |||
|     //links raus | |||
|     if (ball[i].y <= 0-ball[i].g2) { | |||
|       ball[i].y = height+ball[i].g2/2; | |||
|     } | |||
|     //rechts raus | |||
|     if (ball[i].y >= height+ball[i].g2) { | |||
|       ball[i].y = 0-ball[i].g2/2; | |||
|     } | |||
|     ball[i].maleBall(); | |||
|     //Bälle stoßen aneinander | |||
|     for (int j=i+1; j < 10; j++) { | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|     } | |||
|   } | |||
|   for (int i=10; i < 15; i++) { | |||
|     //Bewegen | |||
|     if (ball[i].angle <= 360) { | |||
|       ball[i].angle -= 4; | |||
|     } | |||
|     if (ball[i].angle <= 0) { | |||
|       ball[i].angle = 360; | |||
|     } | |||
|     //im Bogen | |||
|     ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6; | |||
|     ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6; | |||
|     ball[i].x = ball[i].x + ball[i].vx; | |||
|     ball[i].y = ball[i].y + ball[i].vy; | |||
|     //Ballgröße zurücksetzen | |||
|     if (ball[i].g1 != 90) { | |||
|       ball[i].g1 = 90; | |||
|     } | |||
|      //Rand oben | |||
|     if (ball[i].x <= a+c+b+c+ball[i].g1/2) { | |||
|       ball[i].angle = 60; | |||
|     } | |||
|     //Rand unten | |||
|     if (ball[i].x >= width-ball[i].g1/2) { | |||
|       ball[i].angle = 180; | |||
|       ball[i].g1 = ball[i].g1-20; | |||
|     } | |||
|     //links raus | |||
|     if (ball[i].y <= 0-ball[i].g2) { | |||
|       ball[i].y = height+ball[i].g2/2; | |||
|     } | |||
|     //rechts raus | |||
|     if (ball[i].y >= height+ball[i].g2) { | |||
|       ball[i].y = 0-ball[i].g2/2; | |||
|     } | |||
|     ball[i].maleBall(); | |||
|     //Bälle stoßen aneinander | |||
|     for (int j=i+1; j < 15; j++) { | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|       if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 135; | |||
|         ball[j].angle = 45; | |||
|       } | |||
|       if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&  | |||
|       (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) { | |||
|         ball[i].angle = 45; | |||
|         ball[j].angle = 135; | |||
|       } | |||
|     } | |||
|   } | |||
| } | |||
| == Objekt Ball == | == Objekt Ball == | ||
edits