In welchen Methodenmethoden sollten Spielstatus gespeichert/geladen werden
Frage
Es gibt viele Artikel darüber, wie man einen Spielzustand rettet, und sie sind ziemlich gut. Aber ich habe ein konzeptionelles Missverständnis, wo ich den Staat retten soll?
Mein libgdx -Spiel hat eine Anzahl von Bildschirmen und Paar davon sind Maklemänner und Mainscenescreen Diese werden von geerbt von Bildschirm Klasse. Maklemänner wird zu Beginn des Spiels gezeigt Mainscenescreen ein bisschen später.
Was ist das Problem? Ich navigierte zu Mainscenescreen, erzwungene Android, die Anwendung zu stoppen (ich ändere eine Spracheinstellungen auf dem Gerät, um dies zu erreichen). Danach wähle ich die Anwendung erneut aus und kann sehen Maklemänner wird gezeigt. Aber ich möchte Mainscenescreen gezeigt werden.
Ich nehme an, ich sollte außer Kraft setzen resume
Methode. Aber welcher? ich habe Unterricht PSGame Das erstreckt sich Spiel Klasse von libgdx. Ich habe Brechungspunkte in seine gesetzt resume
Methode und es stellte sich heraus, dass diese Methode nicht aufgerufen wurde. Ich habe das Problem untersucht und diesen seltsamen Code in der gefunden onResume
Methode von Androidapplication Klasse in libgdx:
if (!firstResume)
graphics.resume();
else
firstResume = false;
Mein Debugger sagte Firstresume war wahr und ging nicht zu Graphics.Resume () Linie.
- Was habe ich falsch gemacht?
- Welche Methoden sollte ich überschreiben?
Lösung
Ich denke, Sie haben dies richtig eingeschränkt, und Sie sollten Ihren gespeicherten Zustand während des resume
Methode rufen Sie auf Game
Unterklasse. Dies sollte aufgerufen werden, wenn Sie für ein wenig zu einer anderen App wechseln und dann zu Ihrer App zurückkehren (ohne die Schritte durchzuführen, die die App beenden werden). Aus irgendeinem Grund leitet libgdx das nicht weiter resume
Rufen Sie das erste Startup an (dieses Design ist auf lange Sicht wahrscheinlich eine gute Idee, ist aber ein bisschen verwirrend, wenn Sie anfangen). Es ist leicht genug, Ihren Wiederherstellungscode aus dem aufzurufen create
Methode in Ihrem Game
(Das wird nur beim Anwendungsstart aufgerufen), um den ersten Start Ihres Spiels zu erhalten, um das Verhalten des Lebenslaufs zu haben.