Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Der bewegte Ball

Ziel: Auf dem Bildschirm des GameKit wird ein Kreis gezeichnet. Der Kreis soll sich über den Bildschirm bewegen und von den Rändern abprallen.

Ein Kreis ;-)

Es geht ganz einfach mit dem Zeichen eines Kreises auf dem Bildschirm los. Die beiden Koordinaten cx und cy bestimmen die Lage des Kreismittelpunktes.

Hinweis: Schön ist der Kreis nicht. Es ist eher ein Quadrat mit abgerundeten Ecken! Über bitmaps lassen sich später Kreise zeichen, die fast rund sind.

Display

erste Bewegung nach rechts

Die Idee zur Darstellung einer Bewegung ist immer gleich: Der Ort des Balls wird ein kleines Stück verändert (1 Pixel), der Kreis wird gezeichnet, etwas gewartet (damit wir was sehen) und diese Prozedur oft wiederholt.

Damit sich der Kreis bis zum Rand bewegt, müssen die 70 Pixel zwischen dem rechten Rand des Kreises und dem rechten Rand des Bildschirmes überbrückt werden.

Man sieht aber, dass sich nicht der Ball bewegt, sondern mehr so eine verschmierte Spur zurück lässt. Nicht schön!

Das kann verändert werden, indem der Ball vor der Berechnung der neuen x-Koordinate glöscht und nach der Berechnung neu gezeichnet wird. Da es aber keinen Befehl zum Löschen eines Objektes gibt, wird der Kreis vor der Berechnung in der Hintergrundfarbe neu gezeichnet.

In der Schleife muss als stehen:

  • Zeiche den Kreis in der Farbe des Bildschirms
  • Andere x um 1
  • Zeiche den Kreis in rot
  • Warte
Display

Der Ball schleicht gemächlich zum rechten Rand und bleibt dort liegen.

Wenn man aber die Größe des Balls ändert, also z.B. den Radius auf 5 setzt, bleibt der Ball kurz vor dem Rand stehen. Das sieht nicht gut aus.

Die Laufweite muss dem Radius angepasst werden. Dazu wird das Programm umgeschrieben. In der Dauerhaft-Schleife bewegt sich der Ball solange, bis er, egal mit welcher Größe, am Rand zum Stehen kommt.

Display

Nun soll der Ball auch wieder zurückfliegen und dann wieder zurück, also immer hin und her. Dafür noch einmal radikal geändert. Es wird eine neue Variable dx festgelegt, die die Änderung des x-Wertes enthält, also 1. Sie wird bei jeder Berührung eines Randes geändert und ist dann entweder 1 oder -1.

Display

Es sollte nun kein Problem sein, auch die y-Koordinate zu ändern. Wenn man in jedem Schritt beide Koordinaten ändert, fliegt der Ball schräg durch den Raum und wird an den Seitenwänden reflektiert.

Lässt man die Pause weg und ändert dx und dy auf 2, kommt ordentlich Schwung in die Bewegung.

Damit hat man die Grundlage für ein kleines Spiel geschaffen.

zurück