Um ein Spiel zu starten kann man den Ablauf ‘auf die Plätze, fertig, los’ verwenden.
Die Idee ist, dass man nur ein Script mit einer grünen Flagge hat. Dieses sorgt dann dafür, dass erst mal alle Sprites sich auf ihre Startposition begeben, die Variablen zurückgesetzt werden und dann die Abläufe starten.
Dieses kleine Start-Skript gehört üblicherweise der Bühne.
Es gibt nur ein Skript mit einer grünen Flagge:
Dieses Skript schickt dann ‘auf_die_plaetze’. Hier ist das ‘warte’ wichtig, weil alle anderen Skripte das erst mal fertig bearbeiten müssen.
Bei ‘auf_die_plaetze’ bewegen sich alle Sprites auf die Startposition und machen sich sichtbar oder unsichtbar, je nachdem was im Spiel erforderlich ist.
Der nächste Befehl ist ‘fertig’. Hier werden die Variablen auf den Startwert gesetzt. Auch hier warten.
Und zuletzt wird ‘los’ geschickt. Jetzt starten die anderen Skripte.
Beispiel für Sprite, Aktion ‘auf die plaetze’
Die einzelnen Skripte empfangen die Nachrichten und setzen sich auf ihre Positionen.
Die Richtung sollte gesetzt werden, vor allem wenn das Sprite sich drehen kann.
Die Sichtbarkeit ist wichtig, ‘zeige dich’ oder ‘verstecke dich’.
Die Position am Anfang muß gesetzt werden, vor allem wenn das Sprite sich bewegen kann.
Im Bild nicht gezeigt: das Kostüm sollte auch auf den Startwert gesetzt werden.
Beispiel für Sprite, Aktion für ‘fertig’
Bei ‘fertig’ setzen die Skripte ihre Variablen auf den Startwert.
Variablen ‘für alle Objekte’ werden typischerweise in einem Skript auf der Bühne zurückgesetzt oder vielleicht auch bei der Hauptfigur des Spiels.
Die Variablen, welchen einem Sprite gehören ‘nur für dieses Objekt’ müssen vom Sprite zurückgesetzt werden.
Kein Beispiel: Sprite Aktion für ‘los’
Klar, bei ‘los’ geht es los. Es werden die Bewegungen gestartet, die Überprüfungen ob der Spielstand erreicht ist und all die anderen notwendigen Dinge.
Hier kann kein sinnvolles Beispiel gezeigt werden, da sich die Aktionen bei ‘los’ je nach dem Spiel ändern.
Beispiel für ein Spiel.
Ein ganz einfaches Spiel ist im Anhang zum Herunterladen.
Das Beispiel ist für scratch1.4 geschrieben.
Pattern
Das geordnete Starten einer Anwendung funktioniert nicht immer auf Anhieb und macht Programmieranfängern immer wieder Probleme.
Typische Indikatoren für solche Probleme sind
- Das Spiel läuft einmal korrekt los, beim zweiten Mal nicht mehr.
- Sprites sind nicht sichtbar bei Beginn oder erst später benötigte Sprites tauchen am Anfang schon auf.
- Das Spiel meldet ‘gewonnen’ schon direkt nach dem Anfang, da eine Spielfigur schon auf dem Zielbereich steht.
Das Pattern bietet eine Vorgehensweise für ein geordnetes Hochfahren einer Anwendung.
Der Begriff ‘Pattern’ wird in Anlehnung an /Design Patterns: Elements of Reusable Object-Oriented Software’ Gamma, Helm, Johnson, Vlissides/ verwendet.