For Wiederholung

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

  • For Wiederholung

    Ich fasse mich mal ganz kurz:

    GML-Quellcode

    1. var m
    2. for (m = 0 ; m < dx ; m += 1)
    3. {
    4. if script[m] = "return()"
    5. {
    6. //wenn script[m] "return()" ist, soll die gesamte for-schleife
    7. //neu gestartet werden. Wie mache ich das? Ich habe schon
    8. //so viel ausprobiert und bin zu nichts gekommen!!!
    9. }
    10. }

    Magical dream time!
  • Wie wärs denn einfach mit

    GML-Quellcode

    1. m = 0;

    Damit setzt den den Counter wieder zurück und das ganze fängt von vorne an. Wenn du innerhalb der Schleife noch dx veränderst, musst du evtl das am anfang zwischenspeichern und später wieder auf diesen wert zurückgehen. Ansonsten sollte es aber so funktionieren, denn eine for-schleife macht nichts anderes als:
    am Anfang den ersten befehl ausführen (m = 0), dann das zweite überprüfen (quasi wie if m < dx), dann das ausführen, was du innen reinschreibst (zwischen die geschweiften klammern) und dann das letzte machen (m += 1). Wenn du den ersten befehl manuell nochmal ausführst, wird das ganze "resettet".
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • kein Problem,

    GML-Quellcode

    1. m = 0;

    Doch dann stürzt bei mir das Spiel sofort ab.
    Zweitens: Nein, dx wird nicht verändert.

    Magical dream time!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Megamag ()

  • vielleicht, weils dadurch zu ner endlosschleife wird und der stepevent nie endet?
    In welchem falle würde den script[m] wieder ein anderer string zugewiesen? Dies müsste noch innerhalb der for schleife geschehen, damit sie nicht als endlosschleife endet.
  • solang die forschleife ausgeführt wird, kommt das mouseevent nicht dran...
    du kannst ja einfach per gmlcode abfragen ob die maustaste gedrückt wird.
    Aber wieso soll den eine schleife für ungewisse zeit ausgeführt werden?
    Dir is klar, das das Spiel für diese Zeit 100% CPU Auslastung verursacht?
  • Nein, wenn die Schleife auf return() kommt
    (vorher passiert etwas anderes) soll das ja
    eine Endlosschleife für prinzipiell jedes Objekt
    das man will, werden.

    Magical dream time!
  • ahja... es war also dein ziel ne endlosschleife zu erzeugen?
    falls du das noch nicht verstanden hast: Eine endlosschleife ist endlos und hört nie auf... alles andere drumherum kann daher nicht mehr ausgeführt werden. Selbst wenn dadurch mehrere endlosschleifen entstehen, wird nur die, die als erstes aufgerufen wird ausgeführt.
  • So was doofes...
    Ich dachte mir nämlich, für mein neues Projekt, dass
    man Objekte selbst Scripten kann. So, nun habe ich
    die Teile in einem Array (script[]) gespeichert und wenn
    man auf das Objekt "run" klickt, sollen sie ausgeführt
    werden.Klappt auch Alles, aber wenn man nun einstellt,
    dass das Objekt einen Keis "fährt", dann müsste man,
    wenn der Kreis zuende ist, nochmal auf "run" klicken.
    Dafür sollte dann return() gut sein... Gibt's dafür alter-
    nativen?


    EDIT:
    Entschuldigung, aber hilft mir niemand mehr?

    Magical dream time!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Megamag ()

  • Wenn ich dein Problem jetzt richtig verstanden habe, dann wirde es doch reichen, wenn du die Startposition speicherst, und dann wenn das Objekt wieder ankommt, oder alternativ wenn es stehen bleibt, es die Bewegung noch einmal macht.

    Mach doch dazu eine Abfrage in den Step Event, ob die Position erreicht ist, oder das Objekt stehen bleibt. In welcher das Skript gestartet wird, dadurch sollte der Rest dann auch weiter laufen.

    Ich hoffe ich konnte dir helfen aber ich bin nicht sicher ob ich das Problem richtig verstanden habe.
  • Ja, nun, wie ich sagte, kann man
    den Chara selbst skripten und return()
    wiederholt Alles. Naja, das heißt der
    Chara kommt nicht zwangsläufig wieder
    auf der genannten "Startposition" an...

    Magical dream time!