GM und Initialisierung

    • GM 8

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

    • GM und Initialisierung

      Tag' Community

      Seit ich mich mit JavaScript beschäftige, will ich auch mit GameMaker "präziser" arbeiten, was Codes anbelangt.
      Doch ich bin überrascht; der GM unterstützt keine Initialisierung? Wie z.B. ganz simpel:

      GML-Quellcode

      1. var zahl : int = 15;


      Ist das echt so? Oder mache ich da was falsch. 8o

      Lg
      Michael
    • Mit dem GM initialisierst du variablen einfach durch das zuweisen eines Wertes.
      Eben so wie:

      GML-Quellcode

      1. zahl = 8;

      Der Datentyp wird dabei von dem Wert festgesetzt den du eingibst.
      Dies wäre ein Integer/float Datentyp ("real").
      Wenn es ei nstring wäre, würde der Datentyp eben ein String sein.

      Das "var" ist die deklaration.
      Sie benutzt man wenn man Variablen speichern möchte, die nur eine "lebensdauer" bis zum ablauf des jeweiligen Codes/Scripts (in dem sie aufgerufen wurde) haben sollen.
      Sprich: schreibst du "var zahl" am anfang de Scripts "scr_test",
      so kannst du die Variable Zahl dann mit

      GML-Quellcode

      1. zahl = 8;

      initialisieren, jedoch wird sie nach dem Ablauf des Scripts aus dem Speicher wieder entfernt.
      Das hilft dabei nicht unnötig ressourcen zu verbrauchen da diese Variablen ausserhalb des Scripts garnichtmehr benötigt werden. (>"Hilfsvariablen")
    • Mal wieder gibts ein thread auf GM-D und es werden Puzzlestücke als Antworten geliefert. Schön ._.

      Famous Aussage ist nicht zu 100% korekt, denn "bestimmt" wird im Game Maker garnichts. Der GM benutzt dynamische Datentypen!
      D.h. das hier geht ohne Probleme:

      GML-Quellcode

      1. a = "Hallo, ich bin jetzt ein string";
      2. draw_text(x,y,a);
      3. a = 1234455;
      4. b = 3*a;
      5. a = "ich war eine Zahl und nun wieder ein string!"


      Ja ich weiss, das macht "präzieses" arbeiten schwerer wenn mans so will, da der "Compiler" keine Fehler wirft wenn man solche Dinge tut die in anderen Sprachen verboten sind.

      Ansonsten haben die anderen recht:
      "var" schafft nur Variablen in dem code-stück.
      "globalvar" schafft Variablen die solange das Spiel läuft und _überall_ existieren.
      Wenn man keins von beiden benutzt, werden Variablen initialisiert die nur im einzelnen Objekt existieren.

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)