Domanda

Ci sono un sacco di articoli su come salvare uno stato di un gioco e che sono piuttosto buone. Ma ho una concettuale equivoco in cui dovrei salvare lo Stato?

Il mio libGDX gioco ha numero di schermi e un paio di loro sono MainMenuScreen e MainSceneScreen questi sono ereditate da Schermo di classe. MainMenuScreen è indicato all'inizio del gioco del MainSceneScreen po 'più tardi.

Qual è il problema? Ho navigato su MainSceneScreen , costretti Android per arrestare l'applicazione (cambio a impostazioni della lingua sul dispositivo per raggiungere questo obiettivo). Dopo di che seleziono nuovamente l'applicazione e posso vedere MainMenuScreen è mostrato. Ma voglio MainSceneScreen per essere mostrato.

Forse dovrei ignorare metodo resume. Ma quale? Ho classe PsGame che si estende Gioco classe di libgdx. Ho messo i punti di interruzione per il suo metodo resume e si è scoperto che il metodo non è stato chiamato. Ho studiato il problema e ho trovato questo strano codice nel metodo onResume di AndroidApplication di classe in libGDX:

    if (!firstResume)
        graphics.resume();
    else
        firstResume = false;

Il mio debugger detto firstResume era vero e non è andato a graphics.resume () di linea.

  1. Che cosa ho fatto di sbagliato?
  2. Quali metodi dovrebbero impostare nuovamente?
È stato utile?

Soluzione

Credo che avete limitato questo giù in modo corretto, e si dovrebbe essere il ripristino dello stato salvato durante la chiamata di metodo resume sul sottoclasse Game. Questo dovrebbe essere chiamato se si passa a qualche altra applicazione per un po ', e poi tornare alla vostra applicazione (senza passare attraverso i passi che farà sì che l'applicazione per essere terminato). Per qualsiasi motivo, libgdx non inoltra la chiamata resume per la prima messa in servizio (questo disegno è probabilmente una buona idea nel lungo periodo, ma è un po 'di confusione quando si inizia). La sua abbastanza facile da invocare il tuo codice di ripristino dal metodo create nel vostro Game (che viene richiamato solo all'avvio dell'applicazione) per ottenere il primo avvio del vostro gioco ad avere un comportamento 'resume'.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top