Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Pong

Ziel: Das Pong-Spiel wird erweitert.

Zähler

Es werden im Start-Block vier Variablen mit Anfangswerten fefüllt:

  1. rand_oben: 8
  2. leben: 5
  3. getroffen: 0
  4. aktiv: true

Im oberen Bereich von 8 Pixel Höhe wird die Anzeige realisiert. Das ist ausreichend, um normale Schrift darzustellen.

Die Variable aktiv bestimmt das Geschehen auf dem Bildschirm. Ist sie false, ist das Spiel beendet und es bewegt sich nichts mehr. Wird sie z.B. durch den Knopf A wieder auf true gesetzt, beginnt ein neues Spiel.

 

Da die Anzeige von mehreren Stellen im Programm erneuert werden muss, wird sie in einer Funktion abgelegt. Zuerst wird der Randbereich komplett mit einem weißen Rechteck überdeckt. Damit bleiben keine Anzeigereste übrig, der Bereich ist gelöscht.

Danach wird ein dünner, farbiger Rand am unteren Ende des Anzeigeteils gezeichnet.

Der Text wird aus 4 Teilen zusammengesetzt. Da die Funktion nur das Datenformat String akzeptiert, müssen die Intergerwerte für leben und getroffen in Text umgewandelt werden.

Der erste Aufruf der Funktion erfolgt am Ende der Funktion neustart.

Der gesamte Programm im dauerhaft-Block wird durch die Abfrage der aktiv-Variablen nur noch ausgeführt, wenn diese wahr ist.

Display

In der Auswertung der linken Seite wird die Variable getroffen um eins erhöht und die Anzeige erneuert, wenn der Schläger getroffen wurde.

Display

Falls der Ball nicht gefangen wurde, wird die Variable leben um 1 erniedrigt und geschaut, ob das Spiel weitergehen kann oder beendet wird.

Display

Mit der Taste A am GameKit (nicht am Calliope mini!) wird eine Funktion init aufgerufen, falls die Variable aktiv auf false gesetzt ist, als das Spiel beendet wurde. Die Funktion init ist noch zu schreiben. Sie enthält alle Einstellungen und Programmteile, die beim Start des Programms ausgeführt werden. Im Startblock wird dann nur noch die init-Funktion aufgerufen.

Display

Der Schläger wird kleiner

Im nächsten Teil soll das Spiel nach jedem dritten getroffenen Ball etwas schwieriger werden. Als erstes wird der Schläger immer kleiner.

Damit man im Programm nicht die Übersicht verliert und es zu einem Spagetticode wird, verlagert man alles, was nach einem Treffer passieren soll, in eine extra Funktion treffer, die dann aus dem Hauptprogramm heraus aufgerufen wird.

Die Richtungsänderung und das Zählen wird aus dem Hauptprogramm übernommen. Dann wird geprüft, ob die Anzahl der Treffer durch 3 teilbar ist (das ist nach jedem 3. Treffer der Fall) und der Schläger noch eine bestimmte Größe hat (>10, doppelter Radius). Als nächstes wird der bisherige Schläger gelöscht, die Länge um 5 Pixel verkleinert und der kleinere Schläger neu gezeichnet.

Die Zahlen können ganz nach belieben verändert werden. Der Schläger kann z.B. bei jedem zweiten Treffer kleiner werden oder er wird schneller kleiner usw.

Display

Der Ball wird schneller

Im gleichen Programmteil kann die Ortsänderung dx und dy Stück für Stück vergrößert werden. Auch hier kann man mit den Zahlen etwas variieren. Es spielt sich auch besser, wenn der Schläger bei jedem Tastedruck nicht nur um 1, sondern 2 geändert wird. Dadurch ist er etwas lebendiger.

Es ist auch möglich, die dx- und dy-Werte nach jedem Ball im Aus, also jedem Neustart, wieder auf die ursprüglichen Werte zurückzusetzten oder so zu lassen.

Display

zurück