Skip to content

Prototyp Flappy Bird

lulugo19 edited this page Mar 24, 2022 · 4 revisions

Flappy Bird ist ein Spiel, das 2013 das erste Mal in den App-Stores erschien und trotz simpler Spielmechanik einen großen Hype erfuhr. In diesem Spiel steuert man einen Vogel, der bei Tastendruck etwas nach oben fliegt. Dann gibt es die Hindernisse. Das sind immer zwei Röhren, welche an der gleichen Position sind und von der eine aus dem Boden kommt und die andere aus dem Himmel ragt, sodass ein Spalt übrigbleibt, wodurch der Vogel fliegen kann. Es kommen endlose dieser Hindernisse hintereinander, wobei der einzige Unterschied ist, dass sich der Spalt immer an einer zufälligen anderen Stelle befindet. Sollte der Vogel eine der Hindernisse berühren, so stürzt er ab und das Spiel ist vorbei. Für jedes erfolgreich überwundene Hindernis erhält der Spieler einen Punkt. Die x-Position des Vogels ändert sich nicht, die Hindernisse bewegen sich auf ihn zu, sodass die Illusion erschaffen wird, dass er sich in der virtuellen Welt bewegt. Folgende Bedingungen müssen eingehalten werden:

  1. Der Vogel befindet sich anfangs mittig auf der linken Seite der Spielumgebung.
  2. Der Vogel fällt standardmäßig.
  3. Wenn die Leertaste gedrückt wird, so fliegt der Vogel wieder etwas nach oben.
  4. Wenn der Vogel den unteren Spielfeldrand berührt, so ist das Spiel vorbei.
  5. Der Vogel kann nicht aus dem oberen Spielfeldrand heraus fliegen.
  6. Immer wenn der Vogel nach oben fliegt, neigt er sich nach oben und wenn er fällt neigt er sich nach unten.
  7. Die Hindernisse bestehen aus zwei vertikalen Rechtecken, von denen ein Rechteck aus dem oberen Spielfeldrand und das andere Rechteck aus dem unteren Spielfeldrand kommt und welche an der gleichen x-Position sind. Man kann es sich auch wie ein großes Rechteck mit einem Spalt in der Mitte vorstellen.
  8. Der Spalt der Hindernisse ist immer gleich groß.
  9. Die Hindernisse bewegen sich vom rechten Spielfeldrand nach links auf den Vogel zu. Ist das Hindernis überwunden, so verschwindet es aus dem linken Spielfeldrand.
  10. Es bewegen sich immer neue Hindernisse von rechts in das Spielfeld rein. Es handelt sich also um ein unendliches Level.
  11. Der Abstand zwischen den einzelnen Hindernissen ist immer gleich groß.
  12. Berührt der Vogel ein Hindernis, so stürzt er ab und kann nicht mehr nach oben fliegen.
  13. Für jedes überwundene Hindernis erhält der Spieler einen Punkt. Die Punktanzahl wird angezeigt.
  14. Wenn das Spiel vorbei ist, wird die Punktanzahl nochmal größer in der Mitte der Spielumgebung angezeigt.
  15. Das Spiel hat an folgenden Stellen Soundeffekte: Wenn der Vogel hochfliegt, spielt ein kurzer Flieg-Sound ab. Wenn der Vogel abstürzt, spielt ein Abstürz-Sound ab. Wenn die Punktzahl erhöht wird, spielt ein Punkte-Sound ab.
  16. Wenn das Spiel vorbei ist, kann es über die Spieloberfläche neu gestartet werden.

Folgendermaßen wird Flappy Bird in Zaubercode implementiert:

Vogel

Der Vogel besteht aus dem Baustein Bild in dem folgende weitere Bausteine eingefügt werden:

  • Klang K um Klang abzuspielen
  • Zahl V für die vertikale Geschwindigkeit des Vogels. Dieser Baustein ist unsichtbar.

Aktionen-Editor

runterfallen:
    Zahl G <- -3; § Schwerkraft §
    
    []:
        V <- V + G;
        ändere Y um V;
         
        § Rotation §
        Zahl R <- -V/30 * 90;
        ? R > 90: R <- 90;
        ? R < -90: R <- -90;
        setze Rotation auf (R)!

        § Nicht oben rausfliegen §
        ? Oben > Kamera->Oben:
            setze Oben auf (Kamera->Hohe / 2);
        .

        $ Game Over, wenn unten rausgeflogen §
        ? Oben < Kamera->Unten:
            $ GameOver $
        .
    .
.

flieg:
    K: spiele!
    V <- 20;
.

Ereignis-Editor

Start:
    setze Position auf (-200) (0);
    warte(0,5);
    runterfallen!
.

Taste ("Leertaste") gedrückt:
    flieg!
.

Berührt (Röhren R):
    § Ersetze den Vogel durch den Absturz-Vogel. Die Eigenschaften werden übernommen. §
    ^AbsturzVogel;
.

AbsturzVogel

Der Vogel wird durch den Absturzvogel ersetzt, wenn der Vogel mit einem Hindernis zusammenstößt. Dieser Vogel kann nicht mehr gesteuert werden, kollidiert nicht mehr und fällt einfach nach unten. Der Absturz-Vogel jat einen Klang Klang K mit einem Absturz-Sound.

Aktionen-Editor

runterfallen:
    K: spiele!
    Zahl G <- -3; § Schwerkraft §
    V <- -6;
    []:
        V <- V + G;
        ändere Y um V;
         
        § Rotation §
        Zahl R <- -V/30 * 90;
        ? R > 90: R <- 90;
        setze Rotation auf (R)!

        $ Game Over, wenn unten rausgeflogen §
        ? Oben < Kamera->Unten:
            $ GameOver $
        .
    .
.

Ereignis-Editor

Start:
    runterfallen!
.

§Bei GameOver, wird der Absturz-Vogel von der Welt entfernt§
GameOver:
    °; § Destroy-Kommando §
.

Röhren

Die Röhren bestehen aus zwei Rechtecken vom Typ Bild, die einen Abstand in der Mitte haben, sodass der Vogel dadurch fliegen kann. Außerdem wurde noch ein Klang K hinzugefügt, um einen Sound abzuspielen, wenn die Röhren zurückgesetzt werden und eine Nachricht $ Punkt $ wird gesendet, um die Punktzahl zu erhöhen.

Aktionen-Editor

bewegen:
    Zahl vx = -5; §die horizonztale Geschwindigkeit§
    []:
        ändere X um (vx)!
        ? Rechts < Kamera->Links:
            setze Links auf (Kamera->Rechts)!
            K: spiele!
            $ Punkt $;
        .
    .
.

Ereignis-Editor

GameOver:
    +-; §Terminiere§
.

Punktzahl

Die Punktzahl ist ein Baustein vom Typ Zahl, welche oben in der Mitte angezeigt wird.

Ereignis-Editor

Start:
    setze Zahl auf (0)!
.

Punkt:
   erhöhe Zahl um (1)!
.

Welt

Im Welt-Skript wird noch dafür gesorgt, dass der Vogel ganz am Anfang hinzugefügt wird

** Ereignis-Editor**

Start:
    Vogel V;
    ++V;
.

Clone this wiki locally