m  Zur Themenübersicht        

Billardprojekt: Zweidimensionale Bewegung

Beispieltext

Aufgabenstellung:

Bis jetzt bewegt sich die Kugel (etwas langweilig?) nur von links nach rechts über den Bildschirm. Nun soll sie sich in beliebigen Richtungen d. h. "schräg" über den Bildschirm bewegen und auch am oberen und unteren Rand des Spielfeldes reflektiert werden.

Lösungshinweise:

Wenden wir uns einmal der Reflektion am oberen Rand des Spielfeldes zu: 

Wir halten fest:

  1. Bei der Reflexion am oberen Rand braucht nur die YGeschwindigkeit geändert zu werden (AktuelleYGeschwindigkeit := - aktuelleYGeschwindigkeit)
  2. Die X-Geschwindigkeit wird beibehalten.
  3. Die Geschwindigkeit braucht nur geändert zu werden, wenn die Kugel sich nach oben bewegt (aktuelleYGeschwindigkeit < 0) und wenn der obere Rand der Kugel den oberen Spielfeldrand erreicht oder überschritten hat .

Ähnliche Überlegungen gelten natürlich für die anderen Ränder des Spielfeldes.

Wir müssen die Kugelklasse natürlich noch um die entsprechende Geschwindigkeitskomponente in Y-Richtung und die dazu gehörenden Dienste erweitern. Ebenso benötigt das Spielfeld nun noch die Abfragen 'obererRand' und 'untererRand'

Eine mögliche Klassenstruktur ist die Folgende:

Zum Abschluss hier noch ein Download des fertigen Projektes: Zweidimensionales Billard