Lektion 2b – Aufgabe: Berührung und Zufall
Wenn man beim Schiffe-Versenken mit einer Rakete auf einen Punkt zielt auf dem der Gegenspieler eines seiner Schiffe platziert hat, gilt dieses als getroffen. Zwei Objekte berühren sich also dann, wenn sie die gleichen Koordinaten im selben Koordinatensystem haben.
Aufgabe: Überlege dir, was in einem Spiel passieren könnte, wenn sich zwei Objekte berühren. Schreibe deine Antwort ins Kommentarfeld.
In AppInventor wird die Berührung von einem Objekt mit anderen über folgenden Baustein gesteuert. Das wird mit folgenden Baustein gelöst:
Jetzt müssen wir uns noch überlegen, was passieren soll, wenn Objekt 1 ein anderes Objekt berührt. Es wäre zum Beispiel möglich, dass das Objekt 1 immer wieder auf den Nullpunkt des Koordinatensystems gesetzt wird, wenn es ein anderes Objekt berührt. Sieh dir zum Beispiel den neuen violetten Baustein dazu an:
Natürlich können wir auch ein anderes Objekt bewegen, indem wir in dem lila Kasten einfach ein anderes Objekt aufrufen:
Jetzt wollen wir unser Objekt aber nicht jedes Mal einfach an den Nullpunkt des Koordinatensystems bewegen, sondern eine zufällige Position zuordnen. Hierfür benötigen wir eine weitere, neue Funktion im AppInventor: Zufallszahlen
Beweg dich! Zufällig 🙂
Wollen wir einem Objekt eine zufällige Position zuweisen, benötigt der Computer dafür eine Zufallszahl. Die Berechnung von Zufallszahlen in der Informatik ist normalerweise sehr schwierig zu verstehen. Deshalb gibt es in Programmiersprachen (wie auch in AppInventor) häufig schon fertige Bausteine zur Erzeugung solcher Zufallszahlen.
Der nächste Schritt besteht nun darin, eine Zufallszahl zu generieren und diese in den vorherigen Block einzuspeisen. Der gesuchte Zufallszahlengenerator findet sich unter
Screen1 → Mathematik → ”Zufällige Zahl zwischen 1 bis 100“.
Diesen Baustein fügen wir einmal für die x-Achse und für die Y-Achse ein.
Nun müssen wir diesen Baustein noch etwas anpassen.
Die zufälligen Koordinaten für x und y sollen nämlich maximal so groß wie unsere Spielfläche/ Hintergrund sein. Da die x-Koordinate für die Breite und die y-Koordinate für die Höhe zuständig sind, ersetzen wir die Zahl 100 durch folgendes:
Auf diese Weise werden bei einer Berührung für x und y zwei zufällige Werte auf unserer Spielfläche bestimmt und das Objekt 2 anschließend dorthin bewegt.
Diese Anweisung gilt jedes Mal, wenn das Objekt 1 ein anderes Objekt berührt!