Dans les méthodes de méthode doit être l'état du jeu CONSERVE / chargé
Question
Il y a beaucoup d'articles sur la façon de sauver un état d'un jeu et ils sont assez bons. Mais j'ai un malentendu conceptuel où dois-je enregistrer l'état?
Mon jeu a libGDX nombre d'écrans et deux d'entre eux sont MainMenuScreen et MainSceneScreen elles sont héritées écran classe. MainMenuScreen est indiqué au début du jeu, le MainSceneScreen peu plus tard.
Quel est le problème? Je naviguais à MainSceneScreen , forcé Android pour arrêter l'application (je change un des paramètres de langue sur l'appareil pour y parvenir). Après que je sélectionne à nouveau l'application et je peux voir MainMenuScreen est affiché. Mais je veux MainSceneScreen à afficher.
Je suppose que je devrais passer outre la méthode de resume
. Mais lequel? J'ai la classe PsGame qui étend Jeu classe de libgdx. Je mets à sa méthode des points d'arrêt de resume
et il est apparu que la méthode n'a pas été appelé. J'ai étudié le problème et je l'ai trouvé ce code étrange dans la méthode onResume
de AndroidApplication classe libGDX:
if (!firstResume)
graphics.resume();
else
firstResume = false;
Mon débogueur dit firstResume est vrai et ne pas aller à graphics.resume () ligne.
- Qu'est-ce que je fait de mal?
- Quelles méthodes dois-je remplacer?
La solution
Je pense que vous avez réduit ce bas correctement, et vous devriez être restaurer votre état enregistré au cours de l'appel de la méthode resume
sur votre sous-classe Game
. Cela devrait être appelé si vous passez à une autre application pour un peu, puis revenez à votre application (sans passer par les étapes qui causeront l'application à terminer). Pour une raison quelconque, libgdx ne transmet pas l'appel resume
pour le démarrage initial (cette conception est probablement une bonne idée à long terme, mais il est un peu déroutant lors du démarrage). Son assez facile pour appeler votre restauration du code de la méthode create
dans votre Game
(qui est seulement appelé au démarrage de l'application) pour obtenir le premier début de votre jeu pour avoir « reprendre » le comportement.