Variablendeklaration

  • Variablendeklaration

    Hallo,

    Ich habe heute damit begonnen mich mit GML zu beschäftigen und habe dazu begonnen mich mit dem Tutorial von Windapple (GML - Die Einsteigerreferenz) zu befassen. Vielen Dank für dieses Tutorial. ;)

    Ich bin jetzt bis zu den Arrays gekommen, wollte aber das bis dahin gelernte mal an einem kleinen eigenen Beispiel selbst ausprobieren.

    Ziel ist es, per Zufall eine vom Benutzer anzugebende Anzahl von Objekten in einem Raum zu platzieren (so wie eine Zufallkarte).

    Ich habe also einen einfachen Raum erstellt, sowie ein Asteroidenobjekt welches auf der Karte platziert werden soll. Außerdem habe ich ein Controlerobjekt erstellt und im Raum platziert.

    Folgenden GML-Code habe ich in das Controlerobjekt in ein keypress-event geschrieben:

    //Kartenerstellung
    {
    var anzahleingabe,anzahl; //anzahleingabe = eingegebener Zahlenwert, anzahl = ein Zählwert der in der Karte eingefügten Objekte
    anzahleingabe = get_integer("Bitte Asteroidenanzahl eingeben",10); //Abfrage wieviele Objekte erstellt werden sollen

    while (anzahl<=anzahleingabe)
    {
    instance_create(random(640),random(480),obj_asteroid) //Zufällige Objektplatzierung auf der Karte
    anzahl = anzahl+1
    }

    }


    Wenn ich das Programm starte erhalte ich jedoch nach Eingabe der gewünschten Asteroidenzahl folgende Fehlermeldung:
    ERROR in
    action number 1
    of Key Press Event for <Space> Key
    for object obj_controler:

    Error in code at line 6:
    while (anzahl<=anzahleingabe)

    at position 9: Unknown variable anzahl

    Er erkennt also nicht die Variable mit dem Namen anzahl.
    Aber ich sehe nicht warum. Ist die Variablendeklaration var anzahleingabe,anzahl; fehlerhaft?

    Wer kann mir hierzu einen Tip geben? Vielen Dank im Voraus.
    Dateien
    • Map.zip

      (10,63 kB, 142 mal heruntergeladen, zuletzt: )
    Viele Grüße.
    UPUAUT
  • Der Fehler tritt auf, weil die Variable "anzahl" nicht initialisiert wurde, d.h. du fragst einen Wert ab, der noch gar nicht existiert. Dies kannst du entweder dadurch beheben, dass du vor der while-Schleife "anzahl" den Wert 0 zuweist, oder dass du bei den "Game Settings" unter "Errors" ein Häkchen bei "Treat uninitialized variables as value 0" machst.
  • Benutzer online 1

    1 Besucher