Bewegungsfelder im RPG-Maker?
Hey,
Ich habe im RPG Maker (MZ, falls das interessiert) so Bewegungsfelder gemacht, die einen automatisch über das Feld bewegen.
Also, die Goldenen Felder sind die Felder, wo der Spieler rübergeschubst wird (Felder haben Kollision, vor dem Bewegen des Spielers wird ihm das Laufen durch Wände ermöglicht, und danach wieder weg genommen).
Die Goldenen Felder mit dem Kreis drinnen sind normale Felder, wo der Spieler drauf laufen kann (keine Kollision).
Die Felder mit den Pfeilen, wo die Events drauf sind, sind die Bewegungsfelder (keine Kollision). Wenn man auf die Läuft, soll man so lange in die gezeigte Richtung geschubst werden, bis man auf ein Belaufbares Feld (ein weiteres Bewegungsfeld, oder ein goldenes mit Kreis drinnen). Um das zu erreichen, habe ich für jedes Feld einzeln die Länge zum nächsten belaufbaren Feld eingestellt.
Problem jetzt: wird man von einem Bewegungsfeld auf ein anderes geschubst, wird das zweite Bewegungsfeld nicht aktiwiert, was ja aber sein soll.
Frage: Wie mache ich, dass die Felder sich automatisch gegenseitig aktivieren? (Aktuell sind die Felder: Pririty: Below Characters / Trigger: Player Touch)
1 Antwort
Da ich mich mit dem RPG Maker nicht gut auskenne, kann ich nur grob helfen. Aber soweit ich verstanden habe, soll der Charakter ohne Eingabe automatisch bis zu einem Ereignis bewegt werden.
Problem jetzt: wird man von einem Bewegungsfeld auf ein anderes geschubst, wird das zweite Bewegungsfeld nicht aktiwiert, was ja aber sein soll.
Du kannst mit einer If-Abfrage abfragen ob eine Kollision vorhanden ist, falls nein soll es zum nächsten Feld laufen.
Beispiel:
if (!kollision) {
move(); // Bewegung ausführen, wenn keine Kollision vorliegt
}
Die Felder mit den Pfeilen, wo die Events drauf sind, sind die Bewegungsfelder (keine Kollision).
Ich verstehe das nicht ganz. Wenn ein Ereignis auf einem Feld ausgelöst werden soll, benötigt man einen Trigger. Um sich auf ein Feld mit einem Pfeil zu bewegen und auf das nächste Feld mit der entsprechenden Richtung des Pfeils zu gelangen, wird eine Kollision -> Trigger verursacht.
Das Problem liegt darin, dass die Kollision deaktiviert ist und du somit das Feld betreten hast, obwohl eigentlich eine Kollision vorliegen sollte. Dieses Ereignis tritt auch bei vielen anderen Spielen auf, bei denen am Anfang scheinbar nichts passiert, aber sobald man springt und dann wieder auf den Boden aufkommt, der Trigger ausgelöst wird.
Die einfachste Methode wäre, wenn du nach dem Ereignis deinen Character von einer höhe runterfallen lässt, damit der Spieler das nicht sieht aber der Trigger ausgelöst wird.
Naja, so halb. Wenn der Spieler auf eines der Pfeilfelder geht, dann soll dem Spieler erst einmal die Kollision deaktiviert werden (Damit er durch Wände laufen kann, da die normal-goldenen Felder als Wände zählen, damit der Spieler auch nicht einfach so darauf rumlaugen kann) z.B. 5 Felder nach oben, da 5 Felder in die obere Richtung ein weiteres Bewegungsfeld ist. Danach wird die Kollision von dem Spieler wieder angestellt, damit er nicht mehr auf dem Feldern rumlaufen kann. Das funktioniert auch soweit, nur steht der Spieler jetzt auf dem nächsten Bewegungsfeld, welches sich halt warum auch immer nicht aktiviert. Dafür müsste ich das Feld verlassen, und wieder hineingehen (warum auch immer) da sich das Event des zweiten Feldes nicht aktiviert, wenn ich durch ein anderes Feld darauf gelandet bin.