PureBasic - Spiele für Fortgeschrittene

Udo Kessler 2003



Teil 4
Ein Gegner muß her

Datei: kurs4.pb

  • Hier werden wir nun einen Gegner laden und ihn durchs Bild "fliegen" lassen.
  • Um die Übersicht in unserem Programm weiterhin zu gewährleisten, habe ich alle Deklarationen und ähnliches wieder in eine extra Include Datei gespeichert. InitGame.pb, welche zu Beginn mittels IncludeFile eingefügt wird.


    TIP: Du solltest beim Arbeiten immer sowohl Dein Hauptprogramm als auch Deine Include-Dateien im Editor geöffnet haben, um gegebenenfalls schnell auf sie zugreifen zu können.
    Mache es Dir zur Angewohnheit am Anfang immer alle Dateien, die zu Deinem Programm gehören, zu öffnen.

    Nun brauchen wir etwas, auf das wir schießen können!

    Als Gegnergrafik laden wir gegner.bmp und um auch von ihm mehrere gleichzeitig darstellen zu können, brauchen wir wieder eine neue Struktur, Liste und Prozedur.
    Diese werden, wie auch alle zukünftigen, in der Datei InitGame.pb deklariert und in neuen Subs manipuliert. Im weiteren gehe ich nicht wieder auf jedes Detail ein, das sollte schon aus dem Code ersichtlich sein.

    Du willst ja schließlich was lernen und nicht alles vorgesetzt bekommen. :-)

    Machen wir also mit unseren Gegnern weiter.

    Wir erstellen einfach in jedem Programmdurchlauf eine bestimmte Anzahl an Gegnern, die von Rechts auf uns zufliegen. Wenn sie den linken Rand verlassen haben, löschen wir sie.

    Das heißt, wir müssen jede Runde eine Anzahl an Gegnern erstellen (mit unserer Prozedur AddEnemy(), die X-position jedes einzelnen verringern (nach links verschieben) und sie mittels DisplayTransparentSprite() darstellen.

    Die Erstellung und das Handling der Gegner geschieht im Sub enemy. Damit nicht zu viele Gegner auf einmal auftauchen, müssen wird das genau so regeln, wie wir das auch mit dem Playershot gemacht haben.
    Wir brauchen also eine Variable, die immer auf einen bestimmten Wert gesetzt wird, sobald ein Gegner erzeugt wurde.
    Erst wenn diese Variable den Wert 0 hat, wird ein neuer Gegner erzeugt und die Variable erneut auf den „pausenwert“ gesetzt.
    Wir nennen die Variable einfach enemyDelay. Den Wert auf den wir enemyDelay nach dem einfügen eines Gegners setzen, speichern wir in der Variable enemySetDelay
    Sie wird ebenfalls in der Datei InitGame.pb Initialisiert.

    Um einen Überblick zu haben, wie viele Gegner und Schüsse auf dem Bild sind und ob diese korrekt gelöscht werden, werden deren Anzahl (mit CountList() ermittelt) als Text ausgegeben.

    TIP: Du kannst gerne das Programm nach Deinen Wünschen ändern und rumtesten, oder kopiere einen Teil und mache ein neues, anderes Programm daraus, denn so lernt es sich einfach am schnellsten!
    Baue doch einfach ein paar Sprites ein, die Ähnlich wie die Gegner zufällig im Hintergrund vorbeiscrollen, damit man mehr den Eindruck hat, sich nach recht zu bewegen.

    Schau Dir den Code genau an und gehe ihn Schritt für Schritt durch. Wenn Du alles verstanden hast, gehts weiter zu Teil 5


    Teil 3

    Start

    Teil 5