Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Solo-Pong

Ziel: Der Ball aus der letzten Übung wird durch einen Schläger daran gehindert, den linken Rand zu erreichen. Es gilt, möglichst lange den Ball im Spiel zu halten.

Vorbereitung

Da das letzte Programm erweitert werden soll, öffnet man es und speichert es z.B. unter einem neuen Namen ab. Dann schiebt man alles aus der Dauerhaft-Schleife zur Seite. Der ganze Block wird jetzt grau dargestellt und vom Programm nicht mehr benutzt. Wenn der Schläger funktioniert, wird das Programm wieder zusammengefügt.

Der Schläger

Pong

Der Schläger ist einfach ein schmales Rechteck kurz vor dem linken Rand. Damit man bei der Gestelung flexibel ist und z.B. während des Spiels den Schläger kleiner werden lassen kann, sind alle Größen in Variablen abgelegt.

Länge und Breite erklären sich selbst, s_links ist der Abstand vom linken Rand und s_y ist die Koordinate der linken oberen Ecke. Sie wird so aus der Länge berechnet, dass der Schläger zu Beginn immer in der Mitte platziert ist.

Pong

In der Dauerhaft-Schleife wird auf das Drücken der hoch-Taste reagiert:

  • nur, wenn der Schläger den oberen Rand nicht erreicht hat
  • der alte Schläger wird in weiß gezeichnet. Damit ist er nicht mehr zu sehen.
  • Die s_y-Koordinate wird um 1 kleiner (1 Pixel hoch)
  • der Schläger wird in blau neu gezeichnet.

Da der Computer dafür etwas braucht, muss keine Wartezeit eingebaut werden, damit der Schläger nicht sofort nach oben rauscht.

Die Prozedur für die Bewegung nach unten lässt sich ebenfalls leicht programmieren.

Schiebt man jetzt den Programmteil für den Ball in die unendliche Schleife, hat man schon fast das Spiel fertig. Der Ball erkennt aber den Schläger noch nicht und fliegt einfach so durch.

Damit der Ball vom Schläger abprallt, muss die Entscheidung für die linke Seite erweitert werden. Der Ball wird reflektiert, wenn

  • der linke Rand des Balls (x-radius) auf der Höhe des Schläger ist (s_links+s_breite) und
  • der untere Rand des Balls (y+radius) größer ist als der obere Rand des Schlägers (s_y) und
  • der obere Rand des Balls (y-radius) kleiner ist als der untere Rand des Schlägers (s_y+laenge)
GameKit

Hat man alles richtig gemacht, läuft das Spiel in der Grundversion. Alles weitere kann darauf aufbauen.

zurück