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.

  1. Was habe ich falsch gemacht?
  2. Welche Methoden sollte ich überschreiben?
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top