2.18 SPIEL - Nicht auf das weiße Kachel tippen¶
Ich bin sicher, viele von euch haben dieses Spiel auf euren Handys gespielt. In diesem Spiel geht es darum, auf zufällig erscheinende schwarze Kacheln zu tippen, um Punkte zu sammeln. Das Spiel wird immer schneller, tippt man auf weiße Kacheln oder verpasst schwarze Kacheln, ist das Spiel vorbei.
Jetzt verwenden wir PictoBlox, um es nachzubilden.
Stecke zwei IR-Hindernisvermeidungsmodule vertikal auf das Breadboard, wenn deine Hand über einem der IR-Module platziert ist, erscheint ein blinkender Punkt auf der Bühne, was einem Tipp entspricht.
Wenn der Tipp auf die schwarze Kachel geht, wird der Punktestand um 1 erhöht, berührt man die weiße Kachel, wird der Punktestand um 1 verringert.
Du musst entscheiden, ob du deine Hand über dem IR-Modul links oder über dem IR-Modul rechts platzierst, abhängig von der Position der schwarzen Kachel auf der Bühne.
Benötigte Komponenten¶
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
ESP32 Starter Kit |
320+ |
Sie können sie auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
Schaltung Aufbauen¶
Das Hindernisvermeidungsmodul ist ein infraroter Näherungssensor mit einstellbarer Entfernung, dessen Ausgang normalerweise hoch ist und bei Erkennung eines Hindernisses niedrig wird.
Bauen Sie die Schaltung gemäß dem folgenden Diagramm auf.
Programmierung¶
Hier benötigen wir 3 Sprites, Tile, Left IR und Right IR.
Tile-Sprite: dient dazu, den Effekt abwechselnder schwarzer und weißer Kacheln nach unten zu erzielen. In der Handyspielversion dieses Spiels gibt es normalerweise 4 Spalten, hier machen wir nur zwei.
Left IR-Sprite: dient dazu, den Klickeffekt zu erzielen. Wenn das linke IR-Modul deine Hand erkennt, sendet es eine Nachricht - left an das Left IR-Sprite, um es zu aktivieren. Wenn es die schwarze Kachel auf der Bühne berührt, wird der Punktestand um 1 erhöht, andernfalls wird er um 1 verringert.
Right IR-Sprite: Die Funktion ist im Wesentlichen die gleiche wie bei Left IR, nur dass es die Nachricht Right empfängt.
1. Ein Kachel-Sprite malen.
Lösche das Standard-Sprite, fahre mit der Maus über das Symbol Add Sprite, wähle Paint und ein leeres Sprite erscheint, nenne es Tile.
Gehe zur Costumes-Seite und verwende das Rectangle-Werkzeug, um ein Rechteck zu zeichnen.
Wähle das Rechteck aus und klicke auf Copy -> Paste, um ein identisches Rechteck zu erstellen, und verschiebe dann die beiden Rechtecke in eine bündige Position.
Wählen Sie eines der Rechtecke aus und färben Sie es schwarz.
Wählen Sie nun beide Rechtecke aus und verschieben Sie sie so, dass ihre Mittelpunkte mit dem Zentrum der Leinwand übereinstimmen.
Duplizieren Sie das Kostüm1, indem Sie die Füllfarben der beiden Rechtecke abwechseln. Zum Beispiel ist die Füllfarbe von Kostüm1 links weiß und rechts schwarz, während die Füllfarbe von Kostüm2 links schwarz und rechts weiß ist.
2. Programmieren des Fliesen-Sprites
Gehen Sie zurück zur Seite Blocks und setzen Sie die Anfangsposition des Tile-Sprites so, dass es sich oben auf der Bühne befindet.
Erstellen Sie eine Variable - blocks und geben Sie ihr einen Anfangswert, um die Anzahl der Erscheinungen des Tile-Sprites zu bestimmen. Verwenden Sie den Block [repeat until], damit die Variable blocks allmählich abnimmt, bis blocks 0 ist. Währenddessen soll das Sprite Tile zufällig sein Kostüm wechseln.
Nach dem Klicken auf die grüne Fahne sehen Sie, wie das Tile-Sprite auf der Bühne schnell die Kostüme wechselt.
Erstellen Sie Klone des Tile-Sprites, während die Variable blocks abnimmt, und stoppen Sie das Skript, wenn Blöcke 0 ist. Zwei Blöcke [wait () seconds] werden hier verwendet, der erste begrenzt das Intervall zwischen den Klonen von Tile’s und der zweite lässt die Variable Blöcke auf 0 sinken, ohne das Programm sofort zu stoppen, damit das letzte Fliesen-Sprite genug Zeit hat, sich zu bewegen.
Programmieren Sie nun den Klon des Tile-Sprites so, dass es langsam nach unten bewegt wird und löschen Sie es, wenn es den Boden der Bühne erreicht. Die Änderung der y-Koordinate beeinflusst die Fallgeschwindigkeit, je größer der Wert, desto schneller die Fallgeschwindigkeit.
Verstecken Sie das Original und zeigen Sie den Klon.
3. Auslesen der Werte der 2 IR-Module
Lesen Sie im Hintergrund die Werte der 2 IR-Module aus und führen Sie die entsprechenden Aktionen durch.
Wenn das linke IR-Hindernisvermeidungsmodul Ihre Hand erkennt, senden Sie eine Nachricht - left.
Wenn das rechte IR-Vermeidungsmodul Ihre Hand erkennt, senden Sie eine Nachricht - right.
4. Links-IR-Sprite
Fahren Sie mit der Maus über das Symbol Add sprite und wählen Sie Paint, um ein neues Sprite namens Left IR zu erstellen.
Gehen Sie zur Seite Costumes des Left IR-Sprites, wählen Sie eine Füllfarbe (irgendeine Farbe außer Schwarz und Weiß) und zeichnen Sie einen Kreis.
Beginnen Sie nun mit dem Programmieren des Left IR-Sprites. Wenn die Nachricht - left empfangen wird (das IR-Empfängermodul links erkennt ein Hindernis), dann prüfen Sie, ob der schwarze Block des Tile-Sprites berührt wird, und wenn ja, lassen Sie die Variable count um 1 erhöhen, andernfalls um 1 verringern.
Bemerkung
Sie müssen das Tile-Sprite auf der Bühne erscheinen lassen und dann die Farbe des schwarzen Blocks im Tile-Sprite aufnehmen.
Nun realisieren Sie den Sensor-Effekt (Vergrößern und Verkleinern) für Left IR.
Lassen Sie das Left IR-Sprite verschwinden, wenn auf die grüne Fahne geklickt wird, erscheinen, wenn die Nachricht - left empfangen wird, und schließlich wieder verschwinden.
5. Rechts-IR-Sprite
Kopieren Sie das Left IR-Sprite und benennen Sie es in Right IR um.
Ändern Sie dann die empfangene Nachricht in - right.
Nun ist die gesamte Programmierung abgeschlossen und Sie können auf die grüne Fahne klicken, um das Skript auszuführen.