PureBasic - Spiele für Fortgeschrittene

Udo Kessler 2003



Teil 5
Mit "Mucke" und Kollisionen ist alles schöner...

Datei: kurs5.pb

  • Wie in der Überschrift zu erkennen ist, wollen wir ein wenig Hintergrundmusik einbauen.
  • Außerdem kommt jetzt die Kollisionsabfrage zwischen unseren Schüssen und Gegnern –und zwischen dem Spieler und den Gegnern hinzu, was im Kurs 5 wohl die umfangreichste Neuerung ist.
  • Wir wollen auch eine Punkteanzeige haben, die sich mit jedem abgeschossenen Gegner erhöht.
  • Eine Lebensanzeige für den Spieler ist ebenfalls erforderlich.


    Die Musik laden wir mittels LoadModule(), was uns gestattet, jede beliebige *.mod Datei abzuspielen. Dies geschieht per PlayModule(). Die Module lassen sich einfach in einer Schleife abspielen, so wird unsere Musik niemals enden. :-)
    Bewerkstelligt wird dies mit GetModulePosition() und SetModulePosition()

    Die Kollisionen fragen wir mit SpriteCollision() ab. SpritePixelCollision() ist nicht nötig, da es sich um kleine schnelle Sprites handelt, wo es wenig auffällt, wenn die Abfrage nicht so genau ist. Dies alles natürlich im neuen Sub collisions.

    Sollte nun also eine Kollision zwischen einem Schuss und einem Gegner stattgefunden haben, so müssen wir den Schuss löschen, und einen entsprechenden Wert von enemy()\armor abziehen.
    Ist wiederum die enemy()\armor kleiner 1, so ist der Gegner zerstört, wir müssen ihn also löschen und entsprechend Punkte auf unser Konto gutschreiben. Dies geschieht im Sub enemy

    Sollte der Spieler mit einem Gegner Kollidieren, so zerstören wir letzteren ebenfalls und dem Spieler wird ein Leben abgezogen.

    Um die Punkte gut lesbar darstellen zu können, erzeugen wir mit dem Zeichenbefehl Box() einen schwarzen "Kasten" am unteren Bildschirmrand, in welchen wir die Punkte schreiben. Alle unsere Drawing Angelegenheiten verschwinden ebenfalls in einem neuen Sub namens drawing.
    Unterstützt wird dies alles noch mit neuen Sounds.

    Nun sieh Dir den Code an, achte auf alle Veränderungen und gehe durch, was genau bewirkt wird.

    TIP: Alle Prozeduren können im PB-Editor bequem per Prozedur-Browser (Standardmäßig am rechten Bildrand) erreicht werden, indem man einfach auf den entsprechenden Namen klickt. Man kann auch selbst "Marker" setzen, zu denen man dann springen kann.
    Dies bewerkstelligt man mit einem Kommentar, dem ein "-" vorhergeht, also z.B. so:

    ;- Dies ist eine Sprunkmarke

    Ich habe dies bei allen Subs so gemacht, um diese einfach erreichen zu können.

    Wie unschwer zu erkennen ist, gewinnt selbst ein solch kleines Spiel unheimlich schnell an Komplexität, wenn man es sauber Programmiert!



    Teil 4

    Start

    Teil 6