2.16 SPIEL - Breakout-Klon

Hier verwenden wir den Potentiometer, um ein Breakout-Klon-Spiel zu spielen.

Nachdem du auf die grüne Flagge geklickt hast, musst du den Potentiometer verwenden, um das Schläger-Sprite auf der Bühne zu steuern, um den Ball zu fangen, damit er nach oben gehen und die Ziegel treffen kann. Wenn alle Ziegel verschwinden, ist das Spiel gewonnen, wenn du den Ball nicht fängst, ist das Spiel verloren.

../_images/17_brick.png

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+

ESP32 Starter Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

ESP32 WROOM 32E

BUY

ESP32-Kameraerweiterung

-

Steckbrett

BUY

Überbrückungsdrähte

BUY

Potentiometer

BUY

Schaltung Aufbauen

Der Potentiometer ist ein resistives Element mit 3 Anschlüssen, die beiden seitlichen Pins sind mit 5V und GND verbunden und der mittlere Pin mit Pin35. Nach der Umwandlung durch den ADC-Konverter des ESP32-Boards liegt der Wertebereich bei 0-4095.

../_images/5_moving_mouse_bb.png

Programmierung

Es gibt 3 Sprites auf der Bühne.

1. Schläger-Sprite

Das Ziel des Paddle ist es, die anfängliche Position in der Mitte unten auf der Bühne zu haben und es wird durch einen Potentiometer gesteuert, um es nach links oder rechts zu bewegen.

  • Lösche das Standard-Sprite, verwende den Button Choose a Sprite, um das Paddle-Sprite hinzuzufügen, und setze seine x- und y-Koordinaten auf (0, -140).

    ../_images/17_padd1.png
  • Gehe zur Costumes-Seite, entferne die Umrandung und ändere seine Farbe in Dunkelgrau.

    ../_images/17_padd3.png
  • Programmiere jetzt das Paddle-Sprite, um seine anfängliche Position auf (0, -140) zu setzen, wenn die grüne Flagge angeklickt wird, und lies den Wert von Pin35 (Potentiometer) in die Variable a0 ein. Da das Paddle-Sprite auf der Bühne von links nach rechts bei x-Koordinaten -195~195 bewegt, musst du den [map]-Block verwenden, um den Variablenbereich a0 von 0~4095 auf -195~195 abzubilden.

    ../_images/17_padd2.png
  • Jetzt kannst du den Potentiometer drehen, um zu sehen, ob das Paddle-Sprite links und rechts auf der Bühne bewegt werden kann.

2. Ball-Sprite

Das Ball-Sprite bewegt sich auf der Bühne, prallt ab, wenn es den Rand berührt; es prallt nach unten ab, wenn es den Block über der Bühne berührt; es prallt nach oben ab, wenn es während des Fallens das Schläger-Sprite berührt; wenn nicht, stoppt das Skript und das Spiel endet.

  • Füge das Ball-Sprite hinzu.

    ../_images/17_ball1.png
  • Wenn die grüne Flagge angeklickt wird, setze den Winkel des Ball-Sprites auf 45° und die Anfangsposition auf (0, -120).

    ../_images/17_ball2.png
  • Lass nun das Ball-Sprite sich auf der Bühne bewegen und abprallen, wenn es den Rand berührt, und klicke auf die grüne Flagge, um den Effekt zu sehen.

    ../_images/17_ball3.png
  • Wenn das Ball-Sprite das Paddle-Sprite berührt, mache eine Reflexion. Der einfache Weg, dies zu tun, ist, den Winkel direkt umzukehren, aber dann wirst du feststellen, dass der Weg des Balls völlig festgelegt ist, was zu langweilig ist. Daher verwenden wir das Zentrum der beiden Sprites, um zu berechnen und den Ball in die entgegengesetzte Richtung des Zentrums des Schlägers abprallen zu lassen.

    ../_images/17_ball4.png ../_images/17_ball6.png
  • Wenn das Ball-Sprite an den Rand der Bühne fällt, stoppt das Skript und das Spiel endet.

    ../_images/17_ball5.png

3. Block1-Sprite

Das Block1-Sprite soll mit dem Effekt des Klonens 4x8 von sich selbst in einer zufälligen Farbe über der Bühne erscheinen und einen Klon löschen, wenn es vom Ball-Sprite berührt wird.

Das Block1-Sprite ist nicht in der PictoBlox-Bibliothek verfügbar, du musst es selbst zeichnen oder ein vorhandenes Sprite modifizieren. Hier werden wir es mit dem Button3-Sprite modifizieren.

  • Nachdem du das Button3-Sprite hinzugefügt hast, gehe zur Costumes-Seite. Lösche jetzt zuerst button-a, reduziere dann sowohl die Breite als auch die Höhe von button-b und ändere den Sprite-Namen in Block1, wie im folgenden Bild gezeigt.

    Bemerkung

    • Für die Breite von Block1 kannst du es wahrscheinlich auf dem Bildschirm simulieren, um zu sehen, ob du 8 in einer Reihe unterbringen kannst, wenn nicht, dann reduziere die Breite entsprechend.

    • Beim Verkleinern des Block1-Sprites musst du den Mittelpunkt in der Mitte des Sprites behalten.

    ../_images/17_bri2.png
  • Erstelle jetzt zuerst 2 Variablen, block, um die Anzahl der Blöcke und roll zu speichern, um die Anzahl der Reihen zu speichern.

    ../_images/17_bri3.png
  • Wir müssen einen Klon des Block1-Sprites erstellen, sodass es sich von links nach rechts, von oben nach unten, eins nach dem anderen, insgesamt 4x8, mit zufälligen Farben anzeigt.

    ../_images/17_bri4.png
  • Nachdem das Skript geschrieben ist, klicke auf die grüne Flagge und schaue dir die Anzeige auf der Bühne an, wenn es zu kompakt oder zu klein ist, kannst du die Größe ändern.

    ../_images/17_bri5.png
  • Schreibe jetzt das Auslöseereignis. Wenn der geklonte Block1-Sprite das Ball-Sprite berührt, lösche den Klon und sende die Nachricht crush.

    ../_images/17_bri6.png
  • Zurück zum Ball-Sprite, wenn die Sendung crush empfangen wird (das Ball-Sprite berührt den Klon des Block1-Sprites), wird der Ball aus der entgegengesetzten Richtung abgeprallt.

    ../_images/17_ball7.png