Speichern/Laden



  • jau und zwar ganz simple, wie jeder, oder die meisten, das kennen ist es ja möglich bei Games zu speichern und zu Laden ^^.

    Nun fehlt mir aber irgendwie der Ansatz wie ich das bei meinem Spiel realisieren kann. Eine Idee von mir wäre die benötigten Daten auslagern in eine Datei und dann wieder einlesen. Hab ich noch nicht ausprobiert und wär auch kein problem, das problem folgt nämlich dann...

    Wie krieg ich dem Programm gesagt es soll dann an die bestimmte stelle springen?
    Klar für sowas könnt ich Goto nutzen aber das will ich eigentlich vermeiden...

    Hat vllt jemand einen Ansatz, wie ich soetwas realisieren könnte?



  • Naja, in der Regel hast du bei einem Spiel verschiedene Objekte, welche alle möglichen Dinge in deinem Spiel repräsentieren. Diese müssen sich dann serialisieren können (d.h. letztendlich ihre relevanten in eine Datei oder sonstigen Stream schreiben können) und natürlich auch umgekehrt.
    Wichtig ist, dass das Zeichnen der Objekte logisch ausreichend getrennt ist, so dass nach dem Wiederherstellen aller Objekte aus einer Datei problemlos weitergemacht werden kann, als sei nichts gewesen.
    Falls du ein text-basiertes Spiel hast, ist es letztendlich ähnlich. Objekte dürftest du da genauso haben und i.d.R. hast du immer wieder ein Main-Loop, mit dem du nach dem Laden wieder anfangen kannst.

    Wozu willst du eigentlich "an eine ganz bestimmte Stelle" springen?



  • nunja wenn du bei einem spiel speicherst, so mitte des spiels, und du das Spiel lädst, willst du ja auch nicht wieder von vorne anfangen. Hättest dann zwar lvl XY und sonst was aber wärst wieder ganz am anfang ^^

    Man soll schon an den "Speicherpunkten" das spiel wieder aufnehmen können#

    + Ja ist textbasierend(vorerst)



  • Dein Hauptcharakter ist ja eines von diesen Objekten.
    Man sollte ihn anweisen können, seine wichtigen Eigenschaften wie Level und seine Position in der Spielwelt in einen Stream zu speichern (also eine Methode serialize()) und von dort wieder laden zu können (sinnigerweise dann unserialize()).



  • hmm idee

    meinst du ich soll meinem hauptcharakter einen wert geben für die jeweilige stelle, an der gespeichert wird, und dann die funktion load() an der jeweiligen stelle ausführen lassen, an der er gespeichert hat? klingt n bissl verwirrend aber hoffe du kannst dem folgen



  • Nö, nicht wirklich...
    Dein Spiel wird ja wahrscheinlich nicht einfach von Anfang bis Ende linear durchgearbeitet, sondern wiederholt sich irgendwo. Meinetwegen in einer Schleife, in dem immer wieder die verfügbaren Aktionen angezeigt werden, aus denen man wählen kann.
    Genau da fängst du nach dem Laden auch wieder an. Entsprechend dem aktuellen Status werden dir wieder die momentan verfügbaren Aktionen präsentiert. Eine davon dürfte immer das Speichern sein.


Anmelden zum Antworten