Wait Function Skripten

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wait Function Skripten

    Ist es irgendwie möglich eine Wait Funktion zu skripten die man in codes verwenden kann damit gewartet wird bis die darunterliegende zeilen ausgeführt werden.
    Sowas wäre sehr praktisch zb im Code dann so aussehen würde:

    Skript heist: wait
    argument0 ist wie viele steps er warten soll zb.: 3

    Draw Event zb.:

    GML-Quellcode

    1. if instance_exists(obj_test)
    2. {
    3. wait(4);
    4. draw_text(x,y,"H");
    5. wait(3);
    6. draw_text(x,y,"Ha");
    7. wait(2);
    8. draw_text(x,y,"Hal");
    9. wait(3);
    10. draw_text(x,y,"Hall");
    11. wait(3);
    12. draw_text(x,y,"Hallo");
    13. wait(20);
    14. instance_destroy();
    15. }
    Alles anzeigen


    vll könnte man sowas über eine DLL lösen oder es geht auch so zu skripten. Ist das möglich? weil alarm und timelines sind sehr umständlich...

    Vielen Dank schon mal im Voraus

    MFG: Mar96k
  • Hmmm... also, wenn ich dich richtig verstanden habe, dann willst du einen Skript, der eine bestimmte Anzahl an Steps wartet, bis der darunter stehende Code ausgeführt wird.
    Was spricht denn gegen die Alarm-Events und Timelines? Die sind doch genau für so etwas implementiert worden.
    Man kann das Problem zwar auch so lösen, nur wozu, wenn es schon im GM die Lösung existiert.
    Du kannst versuchen, mit eigenen Zählern zu skripten, wenn dir die Alarm-Events zu "umständlich" sind. Oder du benutzt die Alarm-Events selbst.
    Zum Beispiel hast du eine Variable, die den Code als String enthält (code = "";).
    Im Alarm-Event 0 (ein anderer Index wäre auch möglich) hast du dann den Befehl, für das Ausführen dieses Skripts.

    GML-Quellcode

    1. execute_string(code);

    Und in deinem wait-Skript hast du dann irgendwie sowas stehen:

    GML-Quellcode

    1. if(alarm[0] <= 0){alarm[0] = argument0;code = argument1;}

    Du übergibts halt, die Anzahl der Steps, die gewartet werden soll und den Code als String.

    GML-Quellcode

    1. wait(3,"draw_text(x,y,'Hallo');");


    Vielleicht kannst du ja auf der Basis zu deinem Ziel kommen.
    Btw, sieht mir dein Beispiel ziemlich stark nach einem Text aus, der auf dem Bildschirm getippt werden soll.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Trixt0r schrieb:

    Vielleicht kannst du ja auf der Basis zu deinem Ziel kommen.
    Btw, sieht mir dein Beispiel ziemlich stark nach einem Text aus, der auf dem Bildschirm getippt werden soll.
    Das war nur ein Beispiel aber ich möchte es einfacher haben als jeden alarm event deswegen abzurufen... und es gibt ja auch nicht unendlich alarm events. natürlich
    könnte man die alarms nochmal in mehrere teile unterteilen durch variablen aber ich will einfach das ganz normal gewartet wird ohne auf timelines oder alarms zugegriffen wird.

    Trotzdem Vielen dank ;) versuchs ein bisschen herumzuspielen. Aber das könnte man doch auch mit einer Variable machen zb.:

    Skript für Create Event:

    GML-Quellcode

    1. //skript load_function_wait();
    2. start_scr = false;
    3. wait_timer = 100;


    Skript für Step Event:

    GML-Quellcode

    1. //Skript wait(time,code);
    2. if wait_timer != argument0 && start_scr == false
    3. {
    4. wait_timer = argument0;
    5. start_scr = true;
    6. }
    7. wait_timer -= 1;
    8. if wait_timer <= 0
    9. {
    10. execute_string(argument1);
    11. }
    Alles anzeigen


    Step Event zb.:

    GML-Quellcode

    1. if (image_index == 0)
    2. {
    3. wait(10,"
    4. image_index = 1;
    5. show_message('Dein Image hat sich geändert!');
    6. ");
    7. }


    Edit: hat leider nicht so funktioniert wie ich es wollte aber immerhin kann ich jetzt unendlich viele alarms im Step event damit erzeugen... Durch Variablen weitere wichtige Punkte
    abfragen. Frage mich ob man damit ein gutes Szenario hinkriegt, was ich eher befürchte aber das wird sich in Zukunft noch zeigen. Wäre es dennoch eventuell möglich
    meine Skripte oben auszubauen das ich wait skripte in wait skripte einfügen kann weil das sieht dann so aus und wäre falsch wie man sieht...

    GML-Quellcode

    1. if bool == true
    2. {
    3. wait(10,
    4. "{
    5. Code...
    6. wait(10,
    7. "{
    8. Code...
    9. }");
    10. }");
    11. }
    Alles anzeigen

    das funktionert aber logischerweise nicht und der Skript greift immer auf die gleichen Variablen zu, soll es aber nicht..

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von mar96k ()