Hinzufügen eines Gegenspielers

Aufgabenstellung
Füge dem Programm einen Gegenspieler für Scratch hinzu. Dieser soll es dem Spieler erschweren, zu gewinnen, indem er grüne Punkte auf den Weg von Scratch zeichnet.
Bedenke, dass Scratch sein Ziel nur erreichen kann, wenn keine Punkte auf seinem Weg sind.

Lösung



Den Gegenspieler für Scratch holen wir aus einer Bibliothek. Wir gehen auf „Neues Objekt:”/„Neues Objekt aus Datei laden”. Jetzt kann man sich ein beliebiges Objekt aus den Ordnern aussuchen und als Gegenspieler verwenden. Im den Skriptbereich des ausgewählten Objektes (im Normalfall Objekt3) legen wir ein neues Skript an. Da auch dieses Objekt wieder zu groß für unseren Weg ist, müssen wir seine Größe verringern.
Außerdem benötigen wir noch einen Startpunkt. Dabei können wir genauso wie bei unserem Objekt1 vorgehen. Sinnvoll ist es, die Bewegungsrichtung ebenfalls auf 90° zu setzen. Wichtig ist noch, dass wir die Stiftgröße auf 10 setzen und die Farbe grün auswählen.
Falls im Kapitel Erstes kleines Programm mit Scratch ein Countdown hinzugefügt wurde, muss noch eine Wartezeit eingefügt werden, damit unser Gegenspieler zum gleichen Zeitpunkt startet wie Scratch. Füge in diesem Fall eine „warte [5]Sek.”-Anweisung hinzu und setze den Wert auf 5 Sekunden.
Jetzt fügen wir die beiden Anweisungen „setze Stiftdicke auf 10” und „setze Stiftfarbe auf [grün]” aus dem Menüpunkt „Malstift” ein. Zudem legen wir noch die Anweisung „wische Malspuren weg” darunter, damit Scratch am Anfang des Spiels einen sauberen Weg hat. Danach setzen wir eine „wiederhole fortlaufend”-Schleife ein, in welche wir erneut das Feld „wische Malspuren weg” einsetzen. Der Grund dafür ist, dass Scratch den Weg nur abgehen kann, wenn alle Punkte entfernt sind. Das heißt, nachdem der Gegenspieler die Punkte aufgezeichnet hat, entfernt er sie wieder, damit Scratch eine Möglichkeit hat, an sein Ziel zu kommen. Um Scratch mehr Zeit zu geben, setzen wir darunter ein „warte 2 Sek.”-Feld ein. Jetzt fügen wir dem Quellcode eine „wiederhole [2] Mal”-Schleife hinzu, in welcher wir definieren, wie sich der Gegenspieler verhalten soll. Als Erstes legen wir einen „senke Stift ab”-Block und darunter einen „hebe Stift an”-Block in die Schleife. Das klingt zunächst seltsam, weil wir ja Punkte zeichnen wollen. Grund dafür ist, dass der Gegenspieler seine Position ändert und ohne den Stift anzuheben, einfach nur eine Linie zeichnen würde. Die Positionsänderung tragen wir nun ebenfalls mit in die Schleife ein. Das machen wir mit den beiden Feldern „ändere x um” und „ändere y um”. In das Feld „ändere x um” tragen wir nun den Wert 30 ein. In das Feld „ändere y um” tragen wir den Wert 10 ein. Dies bewirkt, dass unser Gegenspieler beim Aufruf der Anweisung 30 Schritte nach rechts und 10 Schritte nach oben läuft. Diese Schleife duplizieren wir zwei Mal.
Danach setzen wir unseren Gegenspieler unter der letzten „wiederhole [2] Mal”-Anweisung wieder auf seine Startpunkt zurück und lassen ihn in die andere Richtung laufen. Dazu kopieren wir unsere 3 Schleifen und legen sie an das Ende unserer Kette in die „wiederhole fortlaufend”-Anweisung. Damit der Gegenspieler auch in die andere Richtung läuft, setzen wir vor den x-Wert der drei Schleifen jeweils ein Minus. Dadurch erfolgt die Bewegung nach links statt nach rechts.

Bild 1



Vorheriges Bild
Nächstes Bild



Zur Druckübersicht

Zurück zum Kapitel: Level ändern
Weiter zum Kapitel: Arbeiten mit Koordinaten