Construct 2 Tutorial: Sprites und Instanzvariable

Construct 2 Tutorial: Sprites und Instanzvariable

Nach dem Durcharbeiten des Tutorials von der Construct Webseite und einem ersten Gefühl für das Programm, anhand dessen man Spiele per Mausklick erstellen kann, geht es nun an das Projekt „Kampf Trainer“ für eXperinox. Denn nirgends lernt man mehr, als an einem echten Projekt.

Am Ende dieser Construct Praxis Reihe soll zumindest eine Art interaktiver Kampf Trainer für eXperinox nur unter Verwendung des Game Creators Construct 2 stehen. Es gäbe da noch ein „Bonus-Ziel“, aber das wird hier  lieber nicht verraten, denn eventuell ist so etwas mit dem Game Creator ja gar nicht möglich. Und ich will keine Erwartungen wecken, die ich am Ende nicht erfüllen kann.

Das Projektziel des Kampf Trainers

Das Kampfsystem von eXperinox ist für Einsteiger nicht so einfach zu verstehen, da hier einige Faktoren zu berücksichtigen sind. Ziel des Kampf Trainers ist es nun, dieses Kampfsystem zu visualisieren und damit einfacher verständlich zu machen. Spielerisches lernen also – interaktiv und grafisch.

Am Ende soll der Kampftrainer zumindest folgendes erfüllen:

  • auswählbare Kampfszenarien in Form verschiedener Flottenzusammenstellungen des Gegners (auch ein Szenario gegen „freie Raumschiffe“ soll es geben)
  • der Spieler soll dann eine Flotte zusammenstellen, anhand derer er diese Flotte besiegen kann
  • dabei hat er nur eine bestimmte Anzahl von Spezialisten zur Verfügung (Piloten, Waffenoffiziere und Crew)
  • nach Zusammenstellung der Flotten wir auf Knopfdruck jeweils eine Kampfrunde gestartet und simuliert
  • Treffer werden visualisiert, der Schild und Kampfschaden dargestellt
  • Kämpfe gegen Aliens werden (zumindest vorerst) nicht berücksichtigt, da Alien-Kampfschiffe andere Werte besitzen

Das Prinzip des Kampfsystems

Wie läuft ein Kampf in eXperinox ab?

  • alle Schiffe einer Flotte schießen nacheinander
  • sie zielen dabei auf ein zufälliges Schiff
  • ob sie grundsätzlich treffen, hängt von der Zielgenaugigkeit ab
  • das Opfer kann nun noch anhand dessen Wendigkeit ausweichen
  • jeder Waffenoffizier eines Raumschiffes schießt dabei pro Runde einmal (Raumschiffe können mehrere Waffenoffiziere haben), das Ziel wird für jeden Waffenoffizier neu bestimmt
  • freie Schiffe, also Schiffe, die sich nicht innerhalb einer Flotte befinden, können nicht zurückschießen und auch nicht ausweichen. Das Schild der Schiffe ist ebenfalls nicht aktiv.

Die Grafiken der Raumschiffe

Das Projekt Kampf Trainer startet mit dem Erstellen einer Top-Ansicht aller Raumschiffe. Glücklicherweise haben wir sämtliche Raumschiffe von eXperinox im Blenderformat in 3D vorliegen. Also einfach für alle Schiffe eine neue Kamera definieren und neu rendern.

eXperinox Kampfschiff der Klasse III
eXperinox Kampfschiff der Klasse III, Atakebune, Ansicht von oben

Zusätzlich habe ich noch alle Antriebsfeuer und Mündungsfeuer entfernt. Diese würden im Trainer stören, da die Schüsse dort dann animiert werden sollen. Und fliegen sollten die Raumschiffe gar nicht – die Flotten stehen sich mehr oder weniger starr gegenüber.

Neues Construct 2 Projekt

Nachdem die Grafiken nun allesamt in einer Topansicht vorliegen, wird Construct 2 gestartet und ein  neues Projekt angelegt.

Zuerst definiere ich den Hintergrundlayer und füge als Hintergrund jene Grafik ein, die wir auch in der 3D Karte unseres noXiversums verwenden. Danach den Hintergrund-Layer sperren und einen Main-Layer anlegen, der dann die Raumschiffe beeinhalten wird.

Kampfschiffe als Sprites einfügen

Danach werden alle Raumschiffe als Sprite durch Doppelklick auf eine freie Fläche im Main-Layer hinzugefügt. Vorerst nur  Kampfschiffe und Entdeckungsschiffe. Von der Größe passe ich die Raumschiffe so an, dass die Verhältnisse in etwa stimmig zu den ursprünglichen Raumschiffdesigns sind. Nachdem in der Originalgrafik der Big One zum Beispiel Raumschiffe aus Luken fliegen lässt, muss dieses Raumschiff deutlich größer sein, als alle anderen.

Schritte im Sprite Editor:

  • Grafik beschneiden (Crop transparent edges)
  • Image points für Waffen definieren (Set origin and image points)

Die Eigenschaften der Raumschiffe

Nun sollen alle Raumschiffe exakt jene Daten erhalten, wie sie auch in eXperinox definiert sind.

Atakebune Werte
Atakebune Werte

In Construct 2 geschieht dies über die Definition von Instanzvariablen. Für jedes Raumschiff werden nun also folgende Instanz-Variable angelegt:

  • shield
  • plating
  • damage
  • agility
  • accuracy
  • weaponForce

Zusätzlich werden noch die Daten der Spezialisten benötigt, also wie viele Piloten, Waffenoffiziere und Crew Mitglieder ein Raumschiff benötigt.

  • pilot
  • weaponOfficer
  • crew

Handling von Flotten

Nachdem nun alle Raumschiffe fertig definiert sind, stellt sich die Frage, wie man die eigene und gegnerische Flotte am besten händeln könnte. Mein Entwickler-Gehirn sagt mir, dass ich diese als eigene Objekte behandeln sollte. Damit könnte man dann z.B. einfach feststellen, wann alle Raumschiffe der jeweiligen Flotte zerstört sind und somit diese Flotte besiegt wurde.

Hier gilt es nun, erst einmal zu recherchieren, ob und wie sich so etwas in Construct 2 abbilden lässt.

Weiter gehts dann in Teil 2 dieses Construct 2 Praxis Beispiels.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.