¿En qué métodos los métodos deben guardar/cargar el estado del juego?
Pregunta
Hay muchos artículos sobre cómo salvar el estado de un juego y son bastante buenos. Pero tengo un malentendido conceptual ¿Dónde debo salvar al estado?
Mi juego libgdx tiene un número de pantallas y un par de ellas son Mainmenuscreen y MainsceneScreen estos son heredados de Pantalla clase. Mainmenuscreen se muestra al comienzo del juego el MainsceneScreen un poco más tarde.
¿Cuál es el problema? Navegé a MainsceneScreen, forzó a Android a detener la aplicación (cambio una configuración de idioma en el dispositivo para lograr esto). Después de eso, selecciono la aplicación nuevamente y puedo ver Mainmenuscreen se muestra. Pero yo quiero MainsceneScreen para ser mostrado.
Supongo que debería anular resume
método. ¿Pero cual? tengo clase Pájaro que se extiende Juego clase de libgdx. Puse puntos de descanso a su resume
método y resultó que no se llamaba método. Investigué el problema y encontré este código extraño en el onResume
método de Aplicación Android clase en libgdx:
if (!firstResume)
graphics.resume();
else
firstResume = false;
Mi depurador dijo Firstresume era cierto y no fui a Graphics.Resume () línea.
- ¿Qué hice mal?
- ¿Qué métodos debo anular?
Solución
Creo que has reducido esto correctamente, y deberías estar restaurando tu estado guardado durante el resume
Llamada de método en su Game
subclase. Esto debe llamarse si cambia a alguna otra aplicación por un momento, y luego vuelve a su aplicación (sin pasar por los pasos que harán que la aplicación se termine). Por alguna razón, libgdx no reenvía el resume
Llame para el inicio inicial (este diseño es probablemente una buena idea a largo plazo, pero es un poco confuso al comenzar). Es bastante fácil invocar su código de restauración del create
método en tu Game
(que solo se invoca al inicio de la aplicación) para obtener el primer inicio de su juego para tener un comportamiento de 'currículum'.