Workshop - Schritt 17

# Schritt 17:
Gegner einbauen

| Überblick
| Vordefinition der Gegnertypen
| Einbau auf der Grundlage von vordefinierten Gegnertypen

Überblick

### Überblick

In diesem Schritt

- legen wir fest, wie sich Gegner verhalten sollen, wie sie reagieren sollen, welches Schußverhalten sollen sie zeigen,
- bauen wir einen Gegner schließlich in den Level ein.

Vordefinition

### Vordefinition der Gegnertypen

Schließen Sie die beiden jetzt noch offenen Dialoge bis wieder nur noch das Hauptfenster geöffnet ist. Öffnen Sie den Dialog Vordefinierte Gegner über [Edit] [Predefined opponents]. Hier können wir bis zu 32 verschiedene Gegner (schwache Gegner, starke Gegner, Gegner die viel Energie haben etc.) definieren.

Mit der horizontalen Laufleiste können Sie zwischen den 32 verschiedenen Gegner wählen. Den ersten Gegner definieren wir uns jetzt wie folgt:

- Als Grafiktyp (Graphic) beziehen wir uns auf den Index 0 (Radio Man).
- Der Gegner hat eine Lebensenergie (Energy) von 15 Einheiten.
- Als interne Bezeichnung (internal caption) setzen wir Radio Man, energy 15.

- Der Gegner soll sich auf der ganzen Bewegungslinie bewegen: walk on motion line.
- Alle 50 VBL überprüft der Gegner seine Bewegungsrichtung.
- Approximate (ungefähr) bedeutet, daß beim tatsächlichen Einbau dieses Gegners nicht der Wert 50 übernommen wird, sondern ein um bis zu 10 Prozent abgeänderter Wert (zufällige Abweichung). Diese Einstellung ist generell zu empfehlen.
- Innerhalb von 512 Pixeln reagiert der Gegner auf den Spieler.

- Der Gegner kann alle 100 bis 180 VBL einen Schuß abgeben. Die Checkbox approximate (ungefähr) empfehlen wir generell zu aktivieren.
- Als Stärke (Strength) des Gegners geben wir den kleinsten Index (am schwächsten) an.

Damit haben wir einen ersten Gegner entworfen. Wechseln Sie nun mit der horizontalen Laufleiste zum zweiten Gegner. Wir wollen einen zweiten Gegner vordefinieren.

Klicken Sie auf den Button Copy und geben Sie in dem aufgehenden Dialog den Wert 1 (erster vordefinierte Gegner) ein. Die Definition des ersten vordefinierten Gegners wird übernommen. Treffen Sie nun folgende Änderungen:

- Die interne Bezeichnung erweitern wir um das Attribut strong.
- Die Lebensenergie setzen wir zurück auf 10.

- Der Gegner fängt erst dann an zu schiessen, wenn er das erste Mal vom Spieler getroffen wurde (since hit first time).
- Als Zeitspanne jetzt 110 bis 180.
- Und die Gegnerstärke entsprechend 2 setzen. Damit ist dieser Gegner stärker als der vorherige.

Schließen Sie den Dialog mit dem Button OK.

Einbau

### Einbau auf der Grundlage von vordefinierten Gegnertypen

Jetzt beginnen wir mit dem tatsächlichen Einbau eines Gegner. Öffnen Sie Sektor 1. Wechseln Sie in den Bearbeitungsmodus für Bewegungslinien (Motion lines). Erzeugen Sie nun 4 Punkte für Bewegungslinien (bei gedrückter SHIFT-Taste.

Markieren Sie nun alle Punkte. Wichtig ist dabei die Reihenfolge von links unten nach rechts oben.

Rufen Sie mit der rechten Maustaste das Popup-Menü auf. Wählen Sie den Menüpunkt Create motion line aus. Die Punkte werden miteinander verbunden. Da die 4 Punkte weiterhin selektiert geblieben sind, klicken sie einmal mir der linken Maustaste in das Sektorfenster. Dies hebt die Selektion wieder auf und Ihr Sektorfenster müsste folgendermaßen aussehen:

Markieren (Selektieren) Sie nun den Punkte, bei dem S 1 A 0 steht. Rufen Sie das Kontextmenü auf und wählen Sie Create opponent. Der Dialog für die Definition der tatsächlich eingebauten Gegner erscheint. Wählen Sie aus der Auswahlbox Apply from den vorher definierten ersten Gegner aus: Radio Man, energy 15. Klicken Sie auf den Button Apply, um diesen vordefinierten Gegner zu übernehmen. Natürlich können Sie jetzt in der Dialogbox Abänderungen gegenüber dem vordefinierten Gegner machen. Schließen Sie den Gegnerdialog mit dem Button OK.

Damit sieht Ihr Sektor nun folgendermaßen aus:

Am Anfangs- und Endpunkt einer Bewegungslinie sind Zahlenwerte mit angegeben. Erstellen Sie am auf die beschriebene Art und Weise Bewegungslinien (Motion lines), dann werden die Werte automatisch korrekt gesetzt:

- Erreicht ein Gegner auf einer Bewegungslinie ein Ende, dann sucht er im durch S angegebene Sektor nach einer Bewegungslinie, die bei den Koordinaten beginnt, wo die vorherige gerade geendet hat. Im Normalfall bewegt sich ein Gegner nur innerhalb eines Sektors auf einer Bewegungslinie. Daher steht am Anfang und Ende jeweils ein S mit der aktuellen Sektornummer dabei.
- Dem Buchstaben A folgt die Nummer der Bewegungslinie innerhalb des Sektors. Die Linien werden von 0 an durchnumeriert ohne Lücken. Es darf nicht sein, daß die Bewegungslinien 0, 1 und 3 existieren (2 fehlt).

Tip I: Löschen Sie in einem Sektor Bewegungslinien heraus, dann löschen Sie sicherheitshalber ALLE heraus und erstellen dann die gewüschten Teile neu.

Tip II: Durch das Löschen einer Bewegungslinie wird ein evtl. sich darauf befindlicher Gegner NICHT gelöscht. Sie müssen daher den Gegner vorher von Hand löschen.

Tip III: Sie erreichen die Attribute eines Gegner ganz einfach, indem Sie den Punkt der Bewegungslinie selektieren, auf dem der Gegner angezeigt wird. Rufen Sie das Popup-Menü auf und wählen Sie Edit opponent.

Erzeugen Sie nun wie oben angezeigt einen weiteren Gegner. Dazu müssen Sie vorher wieder eine Bewegungslinie erzeugen, den ersten Punkt selektierten und aus dem Popup-Menü Create opponent anklicken. Wählen Sie als vordefinierten Gegnertyp diesmal den stärkeren. Schließen Sie den Gegnerdialog und Sie haben eine zweiten Gegner in diesem Sektor.

Die Bewegungslinien erhalten dieselbe Höhe wie die Sector fields, in denen sie liegen. Müssen Sie die Höhe von Bewegungslinien (Motion lines) ändern, dann markieren (selektieren) Sie die Bewegungslinien (linke Maustaste und STRG-Taste) und rufen Sie das Popup-Menü auf.

Das sollte es jetzt gewesen sein. Erzeugen (Kompilieren) Sie den Level erneut ([File] [Create Falcon030 level]) und testen Sie ihn auf dem Falcon aus. Dieses Mal müssen Sie nur die Datei level.rld auf den Falcon kopieren.

## Ende des Workshops

Back | Home | Info | Concepts | Workshop | Reference | Next