Steinblock soll sich von A nach B navigieren lassen & auf B dann als Weg/Brücke fungieren

  • Vor dem Bewegungsroutenbefehl zwei Variablen, eine auf die aktuelle x-Position des Steinevents, die andere auf die aktuelle y-Position des Steinevents, setzen; müsste über den Punkt Variablen steuern möglich sein, falls nicht müsste es glaube ich ansonsten mit diesen beiden Scriptcalls gehen:

    Code
    1. $gameVariables.setValue(X,$gameMap.event(5).x)
    2. $gameVariables.setValue(Y,$gameMap.event(5).y)

    X bzw. Y dann halt durch die gewünschte Variablen-ID ersetzen

  • Okay wow, ich habe es versucht und bin auch sehr weitergekommen. Ich kann mich nun tatsächlich währenddessen bewegen und es sind keine Inputs möglich, während der Stein in Bewegung ist.

    Allerdings habe ich jetzt das Problem, dass sich der Stein in jede Richtung nur einmal bewegen lässt. Maximal einmal, sogar. Ich konnte irgendwie kein System dahinter erkennen. Mal kann ich jede Himmelsrichtung einmal betätigen, mal alle bis auf eine.


    Die Pfeilblöcke im Boden sehen folgendermaßen aus:


    Seite 1: Selbstschalter A: ein, Auslöser: Aktionstaste

    Seite 2: Bedingung: Schalter "Stein_Bewegung", Auslöser: Aktionstaste

    Seite 3: Bedingung: Selbstschalter A, Auslöser: Parallel, Code:

    Seite 4: Bedingung: Schalter "Stein an Platz"

  • Hmm, nun bewegt sich der Stein nur noch einmal in die Richtung, die ich als erstes betätige (und bis er an einer Wand anstößt) und danach tut sich nichts mehr...


    [EDIT]

    Kann es daran liegen, dass ich das Event dementsprechend auf einem Pfeilschalter geändert habe und dieses auf die anderen drei Schalter draufkopiert habe? Ich habe dann allerdings jedesmal extra den Eventname der Richtung entsprechend geändert. Jeder Pfeilschalter hat einen eigenen Eventnamen.

  • Die Bewegungsroute hast du nach dem kopieren aber für jeden Pfeilschalter angepasst? (Ansonsten hättest du ja bei jeder Bewegungsroute für den Stein dieselbe Bewegungsrichtung drinstehen)

    Was mir gerade noch auffällt: In dem If-Block hast du ja Variablen steuern, da würde ich stattdessen direkt über den Punkt Skript und nicht Variablen steuern gehen wenn du schon den Skriptcall benutzt

  • Also die Bewegungsrichtung ist immer eine andere, die habe ich auch mit angepasst.

    Bei der Sache mit den "Variablen Steuern": also bei mir sieht das momentan folgendermaßen aus.



    Oben habe ich die Variable ausgewählt und unten dann das Skript eingefügt.


    Also diesen Schritt soll ich auch ändern, meinst du? Soll ich stattdessen den Skript-Menüpunkt auswählen und dort das Skript einfügen?



    [EDIT]

    Ich hab das grad mal versucht, also diese beiden kompletten Variablen raus und dafür zweimal ein Script mit jeweils x und y rein. Aber nun bewegt sich der Stein einmal in eine Richtung, bleibt dann aber auch schon stehen, bevor er irgendwo anstößt und bei einem neuen Input in eine andere Richtung krieg ich "SyntaxError - unexpected token illegal"

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Dekunuss ()

  • Also wenn du bei Variable steuern nen Skript nutzen kannst, dann sollte da nur das $gameMap.event(5).x (oder .y) rein, da das den Wert liefert, auf den die Variable gesetzt werden soll; das $gameVariables.setValue ist (Wie die Bezeichnung schon vermuten lässt) dafür da, um über dessen Skriptcall den Wert einer Variable zu setzen

  • Okay, aber wo genau setze ich dann das $gameVariables.setValue rein?

    Habe das Ganze jetzt mal nur mit den Scripts $gameMap.event(5).x und y in den Variablen versucht und jetzt läuft es zwar wieder normal, aber man kann nun trotzdem noch die Richtung ändern, während der Stein sich bewegt.

  • Na logo! Das ist jetzt Pfeil nach rechts.

    Seite 1


    Seite 2


    Seite 3


    Seite 4


    Die Bewegungsroute auf Seite 3 musste ich wieder auf "Wiederholen" stellen, weil sich der Stein sonst immer nur zwei Felder bewegt hat, anstatt komplett bis zum Impact an einer Wand durchzurutschen.

  • Glaub ich weiß wo der Fehler liegt; nach der Bewegungsroute müsste denke ich mal noch ein wait-Befehl rein, damit die Überprüfung erst wieder ausgeführt wird, wenn die Bewegung des Steins abgeschlossen ist (Das Wiederholen sollte dann auch raus können). Müsstest dann allerdings schauen, wie lange der warten soll, damit die Bewegung noch gut aussieht; würde da erstmal mit 60 Frames starten und dann mal schauen wie es aussieht und anpassen.

  • Hmm stimmt, so würde es gehen... das Blöde ist jetzt nur, dass man jetzt wirklich immer 60 Frames warten muss, bis man wieder einen Input geben kann. Wenn der Stein z.B. gleich nach einem Input gegen eine Wand fährt und auf die nächste Bewegung wartet, muss man trotzdem 60 Frames abwarten, bis man wieder einen Pfeilschalter aktivieren kann. Und wenn ich was Niedriges wie 10 Frames reinmach, kann man gleich danach wieder einen Input geben, auch wenn der Stein noch in Bewegung ist.


    Gibt es nicht eine Möglichkeit, dass ich z.B. die ganzen Wände, gegen die der Stein krachen kann, als spezielles Wand-Event markiere und dann irgendwie im Pfeilevent sage, dass eine Bewegung abgeschlossen ist (und auch erst dann wieder ein Input möglich ist), wenn der Stein eines der Wand-Events berührt?


    [Edit]

    Habe nochmal nachgedacht. Der Stein schlittert ja manchmal an einer Wand entlang, bis er gegenüber an einer anderen ankommt. So einfach, wie ich es mir gerade vorgestellt habe, ist das also dann doch nicht... er berührt ja nämlich die ganze Zeit eine Wand.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Dekunuss ()

  • Das Problem ist, dass du ja eine mögliche Bewegung erst abwarten musst, damit x und y korrekt abgefragt werden können. Es gibt bestimmt nen Skriptcall moving oder so, der abfragt, ob sich das event gerade bewegt, aber da solltest du dich dann besser an jemanden wenden, der sich mit den Skripts des MV auskennt, da ich da nur mit einfachen Sachen weiterhelfen kann.

    Ansonsten mit den Wand-Events.... Könnte mir vorstellen, dass du das über eine if-Abfrage machen kannst, wo du abfragst, in welche Richtung das Steinevent schaut.

  • Okay, dann werd ich einfach mal ein bisschen googlen und ansonsten greife ich auf deine Möglichkeit zurück ;) Danke dir! Du hast mir wirklich geholfen.

    Darf ich fragen, woher du das alles weißt? Hast du dir das über die Zeit selbst angeeignet oder machst du beruflich etwas mit Coding?

  • Ne, studiere gerade Informatik, aber das meiste habe ich mir über das arbeiten mit dem XP angeeignet; da eigentlich solche grundlegenderen Sachen bei allen Makern recht ähnlich sind, kann ich da Referenzen ziehen, aber komplexere Sachen, wo ich mich erst in den Code von anderen Makern einlesen müsste, kann ich deshalb auch nicht wirklich beantworten.

    Da das meiste ja aber über Eventing gelöst werden konnte, kann ich da gut mitreden, weil das an sich in jedem Maker gleich bleibt, auch wenn hier und da mal neue Befehle dazu kommen oder alte wegfallen.