Variable speichern.

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

  • Variable speichern.

    Hi,
    ich habe eine frage und zwar habe ich bei meinen Spiel, eine leben und schuss variable.
    Ich möchte aber wenn im nächsten Raum gehe das das gespeichert wird.
    Wie mach ich das?

    und

    Kann ich GameMaker 8.1 Projecte mit GameMaker Studio öffnen und bearbeiten?

    LG 4ndi
    Jedes Spiel war mal Schlecht doch manche werden verbessert <3
  • Solche Variablen mache ich immer global. Du musst dabei nur darauf achten, dass wenn der Spieler aus dem Level ins Hauptmenü zurück geht, die globale Variable auf den Ausgangswert gesetzt wird, oder du machst das beim ersten Level.

    Wie ich im anderen Post schon geschrieben habe: du kannst von GM 8.1 Projekte in GMS ziehen, aber je nach Projekt ist das mit Problemen verbunden. Versuche es mal mit der Import-Funktion.
    Byte GameMaker Magazin - Online Zeitschrift für Spieleentwickler
  • 4ndi schrieb:

    ich habe eine frage und zwar habe ich bei meinen Spiel, eine leben und schuss variable.
    Ich möchte aber wenn im nächsten Raum gehe das das gespeichert wird.
    Wie mach ich das?


    Wie the_black_wall schon erläutert hat: Mit einer Globalen Variable zb.
    Eine globale Variable ist im ganzen Spiel verfügbar. Jedes Objekt / Script etc kann darauf zu greifen.
    Du kannst am Anfang des Spiels die globalen Variablen festlegen mit zb:

    GML-Quellcode

    1. globalvar SpielerLeben;
    2. SpielerLeben = 3;


    Um nun auf die Globale Variable zuzugreifen musst du nur ein "global." davorsetzen.
    Wenn dem Spieler zb ein Leben abgezogen werden soll:

    GML-Quellcode

    1. global.SpielerLeben -= 1;


    4ndi schrieb:

    Kann ich GameMaker 8.1 Projecte mit GameMaker Studio öffnen und bearbeiten?


    Es gibt eine Imporfunktion für ältere GameMaker Projekte. Je nachdem wie aufwendig / groß dein Spiel war, kann es zu Problemen kommen.
    Ein einfaches Spiel mit wenig speziellen Funktionen sollte kein Problem sein.
    Probleme könnten dir nur "Obsolente" Funktionen machen, die es aufgrund der Mulitplattform Funktion des Studios, nicht mehr gibt.

    Siehe dazu: docs.yoyogames.com/source/dadi…lete functions/index.html
  • Statt

    GML-Quellcode

    1. globalvar SpielerLeben;
    2. SpielerLeben = 3;


    Würde ich gleich

    GML-Quellcode

    1. global.SpielerLeben = 3;


    schreiben. Oft hat man ja nicht nur eine globale Variable sondern mehrere, die packt man in ein eigenes Script und kann dies beliebig aufrufen. Außerdem hat man einen Ort, wo alle globalen Variablen definiert sind. Kleines, wenn auch unschönes Beispiel:

    GML-Quellcode

    1. global.version1 = 101; // Version des Spiels
    2. global.datei2 = "settings.ini"; // Name der Settings-Datei
    3. global.sndvolume = 45;
    4. global.sfxvolume = 100;
    5. global.snd = 1;
    6. global.sfx = 1;
    7. global.particle = 1;
    8. global.fullscreen = 1;


    I.d.R. ruft man das Script als allererstes auf, noch bevor INI-Dateien etc. ausgelesen werden.
    Byte GameMaker Magazin - Online Zeitschrift für Spieleentwickler
  • Normal deklariert man globale Variablen entweder mit "globalvar" und kann anschließend ohne "global." auf diese Variablen von überall drauf zugreifen oder man verzichtet auf die "globalvar" Deklaration und benutzt überall "global." vor der globalen Variable. Ist Geschmackssache.

    In deinem Fall braucht es aber nicht unbedingt globale Variblen. Du kannst auch ein Häkchen bei "Persistent" beim Player objekt oder einem unsichtbaren controller objekt machen, dann existiert das Objekt samt seiner lokalen Variablen raumübergreifend.
  • warum bietet ihr im nicht die option persisten an?
    falls ich nicht will das die variable bei betretten des haupmenüs wieder zurückgesetzt wird
    nutze ich dieses feature.
    es hat sicher seinen grund warum ihr das nicht angesprochen hat, aber welchen? ?(
  • warum bietet ihr im nicht die option persisten an?


    Öhm, es wurde angesprochen ?

    TrunX schrieb:
    Du kannst auch ein Häkchen bei "Persistent" beim Player objekt oder einem unsichtbaren controller objekt machen, dann existiert das Objekt samt seiner lokalen Variablen raumübergreifend.
  • @ZaMi_ wie kommst du denn darauf das die im Menü wieder zurückgesetzt werden? Das passiert nur wenn man die unpassender Weise auch erst im Menü deklariert. Ich mach es immer so sie in einem Introscreen zu initialisieren, denn zu dem Raum kann man dann auch nicht mehr zurückgehen. Ansonsten, wenn dein Menü der erste Raum ist, würde es auch im Game Start event funktionieren, vorrausgesetzt das ausführende Objekt ist schon zu beginn des Spiels im Raum und wird nicht erst durch Code gesetzt.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • also ich hab
    rm_hauptmenu
    rm_spiel
    im rm_spielhabe ich ein control-element (ohne persistens)
    ich klicke im rm_hauptmenu auf spiel starten und rm_spiel wird mit dem control-element geladen
    im rm_spiel bekomme ich nach und nach wasser, nahrung, und einwohner
    sollte ich nun zurück ins hauptmenu werden alle werte auf den create wert gesetzt
    das ganze umgehe ich also mit persistens
    mir wurde aber auch gesagt das wenn ich das control-element in einen raum der nur einmal aufgerufen wird
    "wie du meinst z.B. rm_intro" packe, erübrigt sich das problem.
    und ja, offensichtlich habe ich das element in den rm_hauptmenu oder rm_spiel gesteckt.
    hat natürlich zu problemen geführt...
    naja wenn man etwas nicht besser weiß... :whistling: :D