#1, by MachtnixFriday, 20. November 2015, 20:45 9 years ago
Hallo,
ich möchte mit Visionaire ein Spiel entwickeln, in dem es drei Fortbewegungsarten für die Spielfigur gibt. Die Szenerie ist zweidimensional, das heißt, der Charakter bewegt sich nur von links nach rechts und umgekehrt. Aber er soll sich auch nach unten und oben bewegen können. Es ist ähnlich wie die klassischen Jump-and-Run-Spiele. Eine platte Figur bewegt sich in einer platten Kulisse.
In der Kulisse gibt es Hindernisse, die entweder nur durch die Luft oder durch Wasser überquert werden können. Soll das Hindernis in der Luft überquert werden, so fliegt der Charakter (z.B. mit Hilfe eines Propellers) darüber hinweg, bei einer Wasserbarriere taucht oder schwimmt er (wer hätte das gedacht...). Fliegen könnte dort auch möglich sein.
Dazu benötige ich drei verschiedene Steh- und Geh-Animationen für Laufen, Fliegen und Schwimmen. Das ist vorerst nicht problematisch; ich kann ja drei Outfits anlegen mit den erforderlichen Loops.
Um sich im gesamten Bereich zwischen ganz oben und ganz unten bewegen zu können, muss der begehbare Bereich (das Wegesystem) über die gesamte Kulisse reichen. Dafür wird natürlich die Skalierung ausgeschaltet. Klicke ich also in die Luft, würde der Charakter dorthin laufen. Und da bin ich schon beim Problem: er LÄUFT. Nun muss ich einen Triggerpunkt oder -bereich einbauen, der den Charakter FLIEGEN lässt.
Ich stelle mir das so vor, dass ca. in Charakter-Kopfhöhe über dem Erdboden eine Aktionszone angelegt wird, die über die gesamte Szene reicht. Klickt der Spieler in diese, wird die Figur dorthingeschickt. Ich kann mit dieser Aktion jetzt den Outfit-Wechsel koppeln. Das Starten ist somit kein Problem: klickt der Spieler in den Himmel, wechselt die Figur sofort das Outfit und startet mit dem Propeller nach oben.
Umgekehrt funktioniert es aber nicht. Lege ich einen Aktionsbereich über dem Boden an, in dem der Charakter nur laufen soll und klicke ich in diesen, so landet er nicht etwa mit dem Outfit, mit dem er gerade ausgestattet ist, sondern wird natürlich sofort in das Outfit überführt, mit dem er läuft. Er "läuft" also vom Himmel nach unten auf den Boden, was bescheuert aussieht. Ich möchte aber, dass der Charakter auf den Boden schwebt, landet und erst dort zu laufen beginnt.
Dasselbe ist auch beim Schwimmen. Der Outfit-Wechsel muss erst vorgenommen werden, wenn der Charakter im Wasser ist. Ich muss also die Animation zwischen dem Klicken auf den Punkt, zu dem er hinläuft /-schwimmt-/fliegt splitten und erst im zweiten Abschnitt den Outfitwechsel vornehmen.
Im Prinzip kann ich mir das nur so vorstellen, dass eben vor und hinter dem Wasser ein Aktionsbereich ist, bei dessen Betreten oder Verlassen der Charakter sein Outfit wechselt - und zwar in beide Richtungen - OHNE stehenzubleiben.
Der Nachteil dieser riesigen Aktionsbereiche über die komplette Kulisse ist, dass andere Aktionsbereiche (die man ja für ein Spiel durchaus braucht) überdeckt werden. Es gibt dadurch Fehlaktionen.
Eine Alternative könnten verschiedene Wegsysteme sein. Eines ist ein schmaler Schlauch über dem Boden: hier darf nur gelaufen werden. Ein zweites ist im Himmel angelegt: hier darf geflogen werden - und das dritte logischerweise im Wasser.
Ich habe noch nie mit mehreren Wegsystemen in einer Kulisse gearbeitet. Ich weiß nur, dass "Wegsystem wechseln" bei den Aktionen angeboten wird, also muss ich doch irgendwie den Charakter vom "Boden"-System in das "Luft"- oder "Wasser"system hineinbekommen und wieder zurück? Mit gekoppeltem Wechsel der Outfits.
Ich möchte erreichen, dass der Charakter, z.B. beim Klicken auf eine Wasserfläche dorthin läuft und beim Eintauchen ins Wasser die "Schwimm"-Animation annimmt. Er betritt also das Wegesystem "Wasser". Ebenso möchte ich, dass der Charakter aus dem Flugmodus auf der Erde landet und dann auf dem Boden weiterläuft.
Wie stelle ich das am geschicktesten an?
Vielen Dank für Denkanstöße.
Achja: LUA kann ich nicht...
Machtnix