Niklas: Daten während Offline-Spiel abspeichern

Ich bin gerade dabei ein Offline-Browser-Spiel mit HTML und JavaScript zu programmieren. Jetzt versuche ich, dass die Einstellungen, Eingaben & Ereignisse im Spiel gespeichert werden, sodass man die Seite auch verlassen kann (Man verlässt die Seite nicht unbedingt aus dem Spiel, man geht auf eine weitere Seite - z.B. auf die Einstellungen oder eine andere Ansicht). Dafür müsste ich wissen, wie man die Daten so speichert, dass von mehreren Seiten darauf zugegriffen werden kann. Gibt es wohl die Möglichkeit, mit JavaScript eine .txt-Datei zu erstellen und zu verändern, sodass bei jeder Änderung einige Variablen geändert werden können. Oder gibt es andere Lösungen?

akzeptierte Antworten

  1. Hallo Niklas,

    ich verwende für so etwas localStorage.

    Gruß
    Jürgen

    1. Danke. Das ist genau soetwas, wie ich gesucht habe. Zum dauerhaften Speichern (für den Fall, dass der Cache gelöscht wird), würde ich dann alle Items holen und ausgeben, sodass der Nutzer die Daten alle in einer Datei seines Beliebens abspeichern und wenn er weiterspielen will wieder in das Spiel hineinkopieren kann.

      1. Servus!

        Danke. Das ist genau soetwas, wie ich gesucht habe. Zum dauerhaften Speichern (für den Fall, dass der Cache gelöscht wird), würde ich dann alle Items holen und ausgeben, sodass der Nutzer die Daten alle in einer Datei seines Beliebens abspeichern und wenn er weiterspielen will wieder in das Spiel hineinkopieren kann.

        Ich weiß nicht, wie das gehen sollte. Wenn der Nutzer den Browser-Cache löscht, wird der Nutzer nicht über irgendwelche Daten informiert. Und mit JS kannst du keine Dateien speichern. Das geht nu serverseitig.

        Schau dir im SELF-Wiki mal das JavaScript/Tutorials/Spiele/Zahlenspiele#Mathe-Quiz an.

        Dort wird das Spielergebnis im LocalStorage gespeichert.

        Herzliche Grüße

        Matthias Scharwies

        --
        Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
        1. Hallo Matthias,

          … Und mit JS kannst du keine Dateien speichern. Das geht nu serverseitig.

          das stimmt nicht so ganz. Es gibt da den FileSaver, und da ich keine Binärdateien habe, verwende ich folgendes einfacheres Script:

          var write_file = function(data,fn) {
          	window.URL = window.URL || window.webkitURL;
          	if(window.URL) {
          		var gpx_blob = new Blob([data], {type:'text/plain'});
          		var a = document.createElement("a");
          		a.download = fn;
          		a.href = window.URL.createObjectURL(gpx_blob);
          		document.body.appendChild(a);
          		a.click();
          		document.body.removeChild(a);
          	}
          	else {
          		var fenster = window.open("about:blank","GPX");
          		fenster.document.write(daten.replace(/</g,"&lt;"));
          	}
          }
          

          Leider hängt es vom Browser und dessen Einstellungen ab, ob man einen Speicherdialog sieht, oder ob die Datei um Downloadordner landet.

          Gruß
          Jürgen

          1. Servus!

            Hallo Matthias,

            … Und mit JS kannst du keine Dateien speichern. Das geht nu serverseitig.

            das stimmt nicht so ganz. Es gibt da den FileSaver,

            Vielen Dank!

            geht ab FF20, IE10 und ich hab nichts davon mitgekriegt - an den Kopf klatsch.

            Ich habe grad ein ähnliches Projekt und kann das da super verwenden. Vielen Dank!

            Herzliche Grüße

            Matthias Scharwies

            --
            Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“