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.

  1. ¿Qué hice mal?
  2. ¿Qué métodos debo anular?
¿Fue útil?

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'.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top