Projektdatei der zweiten (besseren) Lösung:

Die Steuerung in der Projektdatei lässt sich wesentlich vereinfachen, wenn das Spielfeld in der Lage ist, Fragen nach seinen Rändern selbst zu beantworten. Damit erhalten wir:

Ergänzen wir auch die Kugelklasse um einen Anfrage für die Geschwindigkeit:

Die Koordinaten zur Reflektion der Kugel werden jetzt vom Spielfeld selbst geliefert. Auch die Kugel ändert ihre Geschwindigkeit immer passend, ohne dass der Programmierer über die richtigen Zahlenwerte nachdenken muss. |
repeat
ersteKugel.bewege;
zweiteKugel.bewege;
if ersteKugel.GibXPos + 12 > dasSpielfeld.rechterRand then
ersteKugel.setzeGeschwindigkeit(-ersteKugel.GibGeschwindigkeit);
if ersteKugel.GibXPos - 12 < dasSpielfeld.linkerRand then
ersteKugel.setzeGeschwindigkeit(-ersteKugel.GibGeschwindigkeit);
if zweiteKugel.GibXPos + 12 > dasSpielfeld.rechterRand then
zweiteKugel.setzeGeschwindigkeit(-ersteKugel.GibGeschwindigkeit);
if zweiteKugel.GibXPos - 12 < dasSpielfeld.linkerRand then
zweiteKugel.setzeGeschwindigkeit(-ersteKugel.GibGeschwindigkeit);
meineUhr.warte(1)
until dieMaus.istGedrueckt;
|
| Zur
nächsten Seite
|
| © 2005 GK 11 If und G. Kubitz Hannah-Arendt-Gymnasium, Lengerich Letztes Update: 17.11.04 |