Programmieren: Ball fällt von oben?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Eine sehr einfache Lösung wäre das Einbinden von Processing in dein Java-Projekt. Referenzen für Processing findest du hier und hier.

Du benötigst eine Ball-Klasse, die Radius, Koordinaten und Farbe speichern kann. In der setup-Methode kannst du mehrere Bälle erzeugen (bestenfalls werden sie in einem Array abgelegt) und in der draw-Methode bewegen, indem du einfach nur die y-Koordinate um n-Schritte hochzählst. Die draw-Methode wird implizit immer wieder neu aufgerufen (wie eine Endlosschleife).

Beispiel für einen Ball (ich habe es bewusst einfach/primitiv gehalten):

Ball ball;

void setup() {
  ball = new Ball(0, 0, 10, 255, 0, 0);
}

void draw() {
  background(255); // clear canvas
  fill(ball.red, ball.green, ball.blue);
  circle(ball.x, ball.y++, ball.radius);
}

Wenn nun der Wert von y überschritten wird, dürfen die letzten beiden Zeilen in draw nicht ausgeführt werden. Die Prüfung kannst du mit einer einfachen Verzweigung (if) vornehmen.

Du benutzt vermutlich eine grafikbibliothek wie swing.

Nun zeichnest du mit dieser die bälle, dann bewegst du sie etwas nach unten, und zeichnest sie nochmal. Ab einem punkt zeichnest du sie nicht mehr.

Für eine solche Programmierung benötigst du eine grafische Benutzeroberfläche wie Swing oder JavaFX (wobei ich JavaFX empfehlen würde). Unter Umständen benötigst du noch ein externes Framework wie Slick2D oder FXGL.

Die Bälle als auch die Linie sind von einer Hitbox umgeben, die zusätzlich noch einprogrammiert werden muss. Diese Hitbox bemerkt dann, dass die Bälle die Linie berühren und können dadurch zum verschwinden gebracht werden. Sprachlich ausgedrückt sähe das Programm dann so aus:

Erzeuge mehrere Bälle, die von oben herunterfallen. Falls sie die Linie berühren, lösche sie wieder.

Eine ausführliche Erklärung zu diesem Thema findest du im Netz, da dies hier völlig den Rahmen sprengen würde. Einfach nach "Java Hitbox" suchen, dann kommen viele Beispiele mit ausführlichen Erklärungen.

P.S. Die Bälle als auch die Linie kannst du schon vorab zeichnen und einfach einbinden.

Woher ich das weiß:Hobby – Ich beschäftige mich seit meiner Kindheit mit der IT