Angriff mit einer Waffe

 [zurück]

Wichtig bei einem Kampfsystem ist die Darstellung im Kampf. Um die Verwendung von Battle-Animations kommt ihr nicht vorbei.
Schritt 1: Das Erstellen der Battle-Animations

Zuallererst braucht ihr Grafiken für die Darstellung der Waffe, mit der euer Held kämpfen soll. Benutzt hierfür zum Einen die Vorlage für Kampfanimationen, die hier als Anlage inklusive ist. Das zweite, was ihr braucht, ist entweder grafisches Geschick (ihr könnt dann die Waffen selbst auf die Vorlage malen) oder bereits vorgefertigte Waffengrafiken, die ihr lediglich zu Animationen bearbeiten müsst. Wie ihr das letztlich anfangt bleibt euch überlassen. Damit ihr aber vorerst zumindest weitermachen könnt folgt hier eine Beispielgrafik, die schon einmal die Grundgrafiken für eine Schwertanimation liefert.

Beachtet bitte die Punkte, die hier im Bezug auf das Erstellen von Maker-Grafiken aufgeführt sind und, dass ihr die Grafik für die Kampfanimationen im Verzeichnis "Battle" eures Projektverzeichnisses ablegt.

Sobald ihr soweit seid, müsst ihr in eurem Projekt in die Data-Base, die ihr durch Klick auf den Button mit der Tabelle oder durch Drücken der Taste [F8] erreicht. Hier klickt ihr zuerst auf die Registerkarte "Battle Animations" und dann auf den Button "Max Field Number" und gebt eine Zahl ein, die größer als die Vorgabe ist (z.B.: für den Anfang 150). Achtet darauf, dass die Standard-Battle-Animations erhalten bleiben... für den Fall, dass ihr sie später brauchen solltet.

Das Anordnen der Grafiken zu fertigen Battle-Animations müsst ihr selbst nach eurem eigenem Geschmack machen... aber auch hier seit ihr nicht alleine auf euch gestellt:

Wenn ihr die oben genannte Grafik für die Battle-Animations der Schwertschläge verwendet, solltet ihr wie folgt vorgehen:

  1. Wählt, wenn ihr in der Data-Base seid, die Registerkarte "Battle-Animation" aus.
    Dort angekommen klickt ihr auf den Button "Max Field Number" und gebt eine Zahl ein, die über der liegt, die euch vorgegeben wird, z.B.: 150.
    Wählt nun im Feld am linkem Fensterrand eine freie Zahl aus, der ihr einen passenden Namen gebt, beispielsweise "Schwertschlag hoch", wenn euer Held nach oben schlagen soll.
    Im Feld "Select Battle Animation" wählt ihr die oben abgebildete Datei "Linksschwert" aus. Im Feld "Max Frame" klickt ihr auf den Button mit den drei Punkten und gebt eine "8" (Acht) ein.
  2. Klickt unter dem Button "Back" auf die Zahl "< 01 >". Nun wählt ihr eine der Grafiken unten aus und klickt im schwarzem Fenster in der Mitte an eine beliebige Stelle. Achtet darauf, dass sie mit dem Charakter zusammenpasst und es im Spiel den Anschein hat, als würde der Charakter mit dem Schwert einen Hieb ausführen.
    Mit Klick auf den Button "Playback" könnt ihr testen, ob der Schwertschlag auch soweit korrekt angelegt ist.
  3. Macht Animationen für einen Schlag nach oben, einen Schlag nach unten, einen für nach links und rechts.

Bedenkt, dass ihr für jede Waffe, mit der euer Held ausgerüstet sein soll, diese Kampfanimationen anfertigen müsst, beispielsweise für Schwerter, Speere und ähnliches.

Wenn ihr nun die Battle-Animations soweit beisammen habt, geht es an das "Coden"...

Schritt 2: Der Angriffs-Code...

Gut, die Kampfanimationen sind fertig. Ihr habt nun den kreativen Teil soweit hinter euch. Nun geht es daran, dass euer Held auf Kommando (wenn die Taste [ENTER] gedrückt wird), mit dem Schwert einen Schlag in die entsprechende Richtung ausführt. Klingt einfach... ist es auch...

  1. Bleibt in der Data-Base und wählt die Registerkarte "Common Events" aus. Hier wählt ihr links eine freie Zahl aus, der ihr das neue Common Event zuordnen wollt.
    Gebt dem Event im Feld "Name" einen entsprechenden Namen, z.B.: "Angriff"
    Im Feld "Event Start Condition" wählt ihr die Option "Parallel Process".
    Klickt im Feld "Appearance Conditions Switch" in das weiße Quadrat und dann auf den Button mit den drei Punkten. In dem sich dann öffnendem Fenster wählt ihr einen freien Switch aus, dem ihr den Namen "Waffe aktiv" gebt.
  2. Klickt im Feld "Events Commands" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und wählt dort den Button "Enter Password".
    Im Feld "Place Password to Variable" klickt ihr auf den Button mit den drei Punkten und wählt eine freie Variable aus, der ihr den Namen "Angriff" gebt.
    Im Feld "Options" setzt ihr noch das Häkchen bei "Wait until key hit".
    Im Feld "Input passable Key" setzt ihr nur das Häkchen bei "Decision (5)". Macht die Häkchen bei den anderen beiden unbedingt raus (!).
    Klickt dann auf OK.
  3. Klickt nun unterhalb der Password-Funktion doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Auf der ersten Registerkarte wählt ihr die Option "Variable". Klickt auf den Button mit den drei Punkten und wählt eine freie Variable aus, der ihr den Namen "Waffenart" gebt.
    Darunter wählt ihr die Option "Set" und gebt im Feld darunter eine "0" (Null) ein. Wählt im Drop-Down-Menü darunter noch die Option "Same", setzt das Häkchen bei "Add ELSE Case" und klickt auf OK.
  4. Klickt über den Worten "ELSE Case" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Change Variable".
    Im Feld "Choose Variables" wählt ihr die Option "One" und mit Klick auf den Button mit den drei Punkten eine freie Variable aus, der ihr den Namen "Attacke ausführen" gebt.
    Im Feld "Set" wählt ihr die Option "Set" und im Feld "Operand" die Option "Set". Gebt hier im Textfeld daneben eine "1" (Eins) ein. Klickt dann auf OK.
  5. Klickt nun doppelt in die leere Zeile darunter und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt die zweite Registerkarte und dort die Option "Event". Wählt im erstem Drop-Down-Menü die Option "Hero" und im zweiten daneben die Option "Up" (Face Direction). Setzt das Häkchen bei "Add ELSE Case" und klickt auf OK.
  6. Über den Worten "ELSE Case" der eben erstellen Fork-Condition klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die zweite Registerkarte und dort den Button "Show Battle Animation".
    Im Feld "Battle Animation" wählt ihr nun die Animation aus, die einen Waffenangriff nach oben darstellen soll.
    Im Feld "Object Charakter" wählt ihr die Option "Hero". Setzt noch bei "Wait until done" das Häkchen und klickt auf OK.
  7. Unter dieser Battle-Animation, aber noch über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die zweite Registerkarte und dort den Button "Wait".
    Gebt bei "Wait Time" eine 1 ein und klickt auf OK.
  8. Unter dem Wörtchen "ELSE Case" klickt ihr doppelt in die leere Zeile und wiederholt die Punkte 5 - 7 jeweils für einen Waffenangriff nach unten, nach links und nach rechts. Beachtet, dass ihr bei der Fork-Condition auch jeweils die Blickrichtung eures Helden ändert.
  9. Wenn ihr soweit die vier Angriffsrichtungen fertig habt, müsste unten noch ein "ELSE-Case" offen sein. Hier würdet ihr nach dem eben behandeltem Schema die Animationen für eine zweite Waffe einbauen... und so weiter...
    Ganz unten, am Ende des Codes, klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Change Variable".
    Im Feld "Choose Variables" wählt ihr die Option "One" und mit Klick auf den Button mit den drei Punkten die Variable aus, die ihr "Attacke ausführen" genannt habt.
    Im Feld "Set" wählt ihr die Option "Set" und im Feld "Operand" die Option "Set". Gebt hier im Textfeld daneben eine "0" (Null) ein. Klickt dann auf OK.
    Euer Code für den Schlag mit einer Waffe wäre nun fertig. Hier ein Codebeispiel für das, was am Ende herauskommen sollte:
Nun habt ihr den Code soweit angelegt, dass euer Held einen sichtbaren Schwertschlag ausführt... jedoch nur dann, wenn er die Waffe wirklich gezogen hat (Wir erinnern uns an den Switch "Waffe aktiv" aus Schritt 1). Nun müsst ihr noch eine Funktion anlegen, die diesen Switch erst dann aktiviert, wenn euer Held mit einer Waffe ausgerüstet ist. Also muss eine Funktion her, die abfragt, ob euer Held auch ensprechend bewaffnet ist.
  1. Bleibt noch in der Data-Base auf der Registerkarte "Common Events". Wählt im linkem Fensterbereich eine der freien, vierstelligen Zahlenkolonnen aus und gebt ihr im Feld "Name" einen Namen (z.B.: Waffenprüfer)
    Wählt im Feld "Event start Condition" die Option "Parallel Process". Das Feld "Appearance Conditions Switch" lasst ihr hierbei außer Acht.
  2. Klickt im Feld "Events Commands" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt dort die zweite Registerkarte und dort die Option "Hero". Wählt im ersten Drop-Down-Menü euren Helden aus.
    Im Feld darunter klickt ihr auf den Button mit den drei Punkten. Wählt hier dann die Option "Item" und im Drop-Down-Menü die Waffe, mit der euer Held ausgerüstet sein soll (in unserem Beispiel wäre das ein Breitschwert).
    Klickt auf OK. Setzt noch das Häkchen bei "Add ELSE Case" und klickt ebenfalls auf OK.
  3. Über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile, wählt im darauf folgendem die erste Registerkarte und dort den Button "Change Switch".
    Im Feld "Choose Switches" wählt ihr die Option "One" und mit Klick auf den Button mit den drei Punkten den Switch, den ihr "Waffe aktiv" genannt habt.
    Wählt im Feld "Set" die Option "On" und klickt auf OK.
  4. Direkt darunter klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variables" die Option "One" und klickt auf den Button mit den drei Punkten daneben. Im daraufhin erscheinendem Fenster wählt ihr eine freie Variable aus, der ihr den Namen "Waffenart" gebt. Klickt auf OK.
    Im Feld "Set" wählt ihr die Option "Set" und im Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "0" (Null) für die erste Waffe ein. Klickt dann auf OK
  5. In der leeren Zeile unter dem Wort "ELSE Case" legt ihr nun die selbe Funktion für weitere Waffen an, mit denen euer Held ausgerüstet sein kann. Sollen keine weiteren Waffen folgen (sprich: er ist unbewaffnet) befolgt ihr Punkt 6....
  6. Klickt nun unter dem Wort "ELSE Case" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Switch".
    Im Feld "Choose Switches" wählt ihr die Option "One" und mit Klick auf den Button mit den drei Punkten den Switch, den ihr "Waffe aktiv" genannt habt.
    Wählt im Feld "Set" die Option "OFF" und klickt auf OK.
  7. Direkt darunter klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variables" die Option "One" und klickt auf den Button mit den drei Punkten daneben. Im daraufhin erscheinendem Fenster wählt ihr eine freie Variable aus, der ihr den Namen "Waffenart" gebt. Klickt auf OK.
    Im Feld "Set" wählt ihr die Option "Set" und im Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "0" (Null) für die erste Waffe ein. Klickt dann auf OK

Somit hättet ihr den Code für den Angriff mit einer Nahkampfwaffe angelegt. Das zuletzt angelegte dient zur Ermittlung der Waffenart, mit der euer Held angreift. Jede Waffe hat unterschiedliche Eigenschaften und richtet daher unterschiedlichen Schaden an. Dies ist daher besonders wichtig, wenn es um die Gegner im Spiel geht.
Ihr könnt einen Probelauf machen. Rüstet probehalber euren Held mit einer entsprechenden Waffe aus und lasst ihn damit wild um sich schlagen... es bewirkt zwar noch nichts, aber dafür hat es weitere Punkte im Baukasten... Hier noch einmal einige Screenshots, die verschiedene Ergebnisse präsentieren:


Schwertschlag-Demo aus meinem Projekt "The Secrets of Volcano-Ville"
(Wird so nicht im Spiel zu sehen sein)


Schwertschlag-Demo vom Zelda-KS-Script von Wachenroeder


 [zurück]