2012-05-24 1 views
5

In andAngine ho bisogno di distruggere una scena in andangine e di ricrearla per riavviare le variabili di gioco e gli ascoltatori e la gamelogic. Io uso questo codice:Come distruggere e ricreare una scena in andengine correttamente?

scene.detachChildren(); 
scene.clearEntityModifiers(); 
scene.clearTouchAreas(); 
scene.clearUpdateHandlers(); 

System.gc(); 
thisengine.setScene(menuscene); 

e poi ricreare la scena

scene = new Scene(); 
scene.dosomestuff 
thisengine.setScene(scene); 

Qualcosa sembra andare male quando ho ricreare la terza volta la scena. Gli sprite non vengono visualizzati ... sono distorti o qualcosa non viene visualizzato affatto. Qualcuno può spiegarmi se inizializzo e distruggo correttamente la scena?

+0

Ciao Claudio. Sto sviluppando un gioco in AndEngine e sto anche lottando con esattamente lo stesso problema. Hai trovato qualche soluzione a questo problema? Se sì, puoi aiutarmi per favore? –

+0

Ciao @YogeshSomani Sto anche lottando con lo stesso problema ... Scrivi se trovi ... –

+0

@shihab_returns: Ti informerò se trovo una soluzione per questo. Mi aspetto lo stesso da te. :) –

risposta

4

Personalmente, vorrei creare la scena una volta la prima volta che viene utilizzata.

Per cambiare la scena, fai i tuoi file di rimozione come hai mostrato, non mi preoccuperei della chiamata a System.gc(), e poi invece di creare una nuova Scene() - chiama semplicemente scene.reset(), scene.dosomestuff, ecc.

La creazione di una nuova scena come quella visualizzata sembra una perdita di memoria principale, o almeno una possibile perdita.