For loop hilfe

  • GM 8
  • For loop hilfe

    Hallo liebe community,

    ich versuche verzweifelt die letzten zwei tage die for loop funktion zu verstehen habe auch schon paar tutorials durch und alles doch ich verstehe es immernoch nicht. Habt ihr ürgendein link oder so wo es noch mehr tutorials gibs?. Weil ich möchte es umbedingt verstehen, da ich es für mein Inventar brauche und nicht einfach ein Inventar Scipt klauen möchte und in mein spiel packen will da ich es selber schreiben möchte doch vorher muss ich genau verstehen wie dieses for loop funktioniert.

    mfg.

    sinsokra
  • Das ist doch ganz einfach:

    GML-Quellcode

    1. for (zaehler = 0; zaehler < 10; zaehler += 1) {
    2. // Code
    3. }


    Im ersten Teil wird der Zähler gesetzt, das wäre bei CAS das <staement1>, danach folgt die Schleifenbedingung, in CAS Beispiel diesmal <expression>. Diese Bedingung gibt an, wie lange die Schleife laufen soll, in meinem Beispiel so lange, solang zaehler < 10 ist. Im hinteren Teil wird schließlich der Zähler geändert, das ist in den meisten Fällen eine Erhöhung um 1, kann aber jede beliebige arithmetische Operation sein. Im Detail:
    • Die Variable zaehler wird auf 0 gesetzt
    • Es wird überprüft, ob die Schleifenbedingung zutrifft
    • Die Bedingung trifft zu (0 < 10)
    • Der Code innerhalb der geschweiften Klammer wird ausgeführt
    • Die Variable zaehler wird gemäß dem letzen statement verändert (also hier wird eins dazugerechnet)
    • Nun wird wieder die Schleifenbedingung überprüft
    • Die Bedingung trifft zu (1 < 10)
    • usw, bis die Bedingung nicht mehr zutrifft (also sobald zaehler = 10 ist). Dann wird der Code innerhalb der geschweiften Klammern nicht mehr ausgeführt sondern der Code fährt nach der geschlossenen geschweiften Klammer fort.
      nicht mehr

    © 2008 by Teamgrill Productions
  • Dieses Beispiel beschreibt aber nur einen Kleinen Teil der Einsatzmöglichkeiten dieser Schleife; man kann deutlich mehr machen, als nur mit ihr zu zählen.
    Denkbar wäre z.B. auch sowas:

    GML-Quellcode

    1. for (obj = instane_create(0,0, obj_foo); obj.x < room_width && obj.y < room_height; {obj.x += 10; obj.y += 20;}) {
    2. if (scr_check_something(obj)) {
    3. break;
    4. }
    5. }


    Edit: Okay, genau genommen zählt man hier auch wieder nur, besseres Beispiel:

    GML-Quellcode

    1. for (obj = instane_create(0,0, obj_foo); scr_check_something_1(obj); scr_do_something(obj)) {
    2. if (scr_check_something_2(obj)) {
    3. break;
    4. }
    5. }