2012-05-24 12 views
5

En andAngine necesito destruir una escena en andangine y recrearla para reiniciar las variables del juego y los oyentes y gamelogic. utilizo este código:¿Cómo destruir y recrear una escena en un motor de forma correcta?

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

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

y luego recrear la escena

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

algo parece ir mal cuando recrear la tercera vez que la escena. Los Sprites no se muestran ... están distorsionados o algo no se muestra en absoluto. ¿Alguien puede explicarme si inicializo y destruyo la escena correctamente?

+0

Hola Claudio. Estoy desarrollando un juego en AndEngine y también estoy luchando con exactamente el mismo problema. ¿Encontraste alguna solución a este problema? Si es así, ¿puedes ayudarme? –

+0

Hola @YogeshSomani También estoy luchando con el mismo problema ... Escribe si encuentras alguna ... –

+0

@shihab_returns: Te informaré si encuentro alguna solución para esto. Espero lo mismo de ti. :) –

Respuesta

4

Personalmente, crearía la escena una vez que la use por primera vez.

Para cambiar la escena, haga sus cosas de eliminación como lo ha mostrado, no me molestaría con la llamada a System.gc(), y luego en vez de crear una nueva escena() - simplemente llame a scene.reset(), scene.dosomestuff, etc.

La creación de una nueva escena como la que se muestra parece una fuga de memoria importante, o al menos una posible fuga.

Cuestiones relacionadas