Beispiel

Wir wollen nun ein etwas komplexeres Beispiel anschauen. Sie finden das Programm unten auf dieser Seite. (durchfressen.sb2.zip)

Screenshot des Beispiel-Programmes

Beschreibung
Die Katze (Scratch) soll den rechten Bildrand erreichen. Im Weg stehen die «cheesy-puffs», durch welche sich Scratch fressen muss. Scratch startet links, marschiert nach rechts zu den «cheesy-puffs», isst dort und marschiert zurück. Das wiederholt sich so lange bis kein Essen mehr da ist. Dann verschwinden die «cheesy-puffs» und Scratch kann den rechten Bildrand erreichen.

Vorbereitung
Folgende Vorbereitungen müssen getroffen werden

  • Hintergrund wählen
  • 2 Objekte einfügen und positionieren
    • «Scratch»
    • «Cheesy-puffs»
  • Variable «Essensvorrat» erstellen
    • Gehört zum Objekt «cheesy-puffs»

Nun können Skripte für die beiden Objekte erstellt werden:

Der Hauptakteur ist die Katze. Deshalb wird ihr Skript etwas umfangreicher:

Skript für Objekt Katze

In diesem Skript erkennt man sehr schön die hierarchische Strukturierung:

  • Ganz zu Beginn wird Position und Ausrichtung festgelegt.
  • Dann folgt der Hauptteil des Programms im Wiederhol-Block. Hier, wo der eigentliche Spielablauf stattfindet, wird für jeden Schritt überprüft, ob die Katze beim Essen angekommen ist; und wenn sie gegessen hat, ob nun der Weg frei ist.
  • Sobald das Ziel, also der rechte Rand, erreicht ist, wird der Wiederhol-Block nicht mehr ausgeführt und die Katze freut sich darüber angekommen zu sein.

Auch das Essens-Objekt benötigt zwei Skripte.

Skript für Objekt Essen

Im ersten Skript wird die Variable «Essensvorrat» auf den Startwert gestellt. Dann wird sichergestellt, dass beim Programmstart das eventuell noch versteckte Essens-Objekt angezeigt wird.
Das zweite Skript wird ausgeführt wenn die Katze die Meldung «essen» schickt. Das Essens-Objekt muss auf diese Meldung reagieren indem es den Essensvorrat verkleinert und falls der Essensvorrat 0 erreicht sich selbst ausblendet, so dass die Katze freie Bahn zum rechten Rand hat.