class Punkt { float xPos; // Startposition X float yPos; // Startposition Y float speed; // Startgeschwindigkeit float angle; // Startwinkel float brake; // Beschleunigung >> hier: Bremswirkung int counter; // Den Counter brache ich, damit die Explosion nicht gleich wieder gelöscht wird ArrayList punkteListe; // Die PunkteListe muss weitergegeben werden Punkt(float nX, float nY, float sp, float an, float br, ArrayList punkteListe) { xPos = nX; yPos = nY; speed = sp; angle = an; brake = br; counter = 0; this.punkteListe = punkteListe; } void move() { paintMe(); // Hier wird der einzelne Punkt gezeichnet float radian = angle * PI / 180; // Der Winkel wird von Grad in Radian umgerechnet xPos = xPos + speed * sin(radian); // Geschwindigkeitsänderung in X Richtung yPos = yPos + speed * cos(radian); // Geschwindigkeitsänderung in Y Richtung speed = max(speed-brake,0); if (speed == 0) // Wenn die Geschwindigkeit 0 ist, Dann: { // ..beginnt der Counter zu zählen counter++; } if (counter == COUNTER_EXPLODE) // Wenn der Counter den vorgesehenen Wert erreicht, Dann: { // ..werden alle Punkte von dieser Liste entfernt punkteListe.remove(this); } } void paintMe() // Hier wird definiert, wie der Punkt gezeichnet wird { noFill(); stroke((int)random(50,255),0,0); ellipse(xPos, yPos, 1, 1); } }