AndEngine – Kill Sprite después de X segundos?

Estoy haciendo un juego para Android usando AndEngine. Ahora mismo estoy tratando de averiguar cómo hacer explosión sprites aparecen en la escena y luego ser eliminado X segundos después. Aquí está mi clase de explosión:

public class Explosion extends Sprite { public Explosion(float pX, float pY, ITextureRegion pTextureRegion, VertexBufferObjectManager pVertexBufferObjectManager) { super(pX, pY, pTextureRegion, pVertexBufferObjectManager); } } 

Ahora lo que quiero hacer a esta clase para hacerlo diferente de un objeto Sprite regular es para que aparezca, y luego ser destruido después de una cierta cantidad de tiempo. ¿Cómo puedo lograr esto usando el AndEngine?

EDIT: Si es posible sacar esto sin tener que crear una clase de Explosion personalizada extendiendo Sprite entonces preferiría hacerlo de esa manera ya que sería más limpio.

También tenga en cuenta que habrá múltiples explosiones en la pantalla a la vez que se crean en momentos diferentes, así que quiero que cada explosión tenga su propia esperanza de vida individual.

Hay varias técnicas que usted podría utilizar dependiendo de sus necesidades. Si la explosión se anima, yo sólo usaría un AnimatedSprite con un IAnimationListener para atrapar cuando la animación cambia los marcos y / o está terminado y luego eliminar el sprite de explosión.

O, usted podría utilizar un DelayModifier – yo uso uno de éstos para "disolver una roca"

O, usted podría utilizar casi cualquier otro modificador – como un modificador en movimiento como decir un QuadraticBezierCurveMoveModifier, o un Modifer como un AlphaModifier.

Independientemente del modificador utilizado, se adjunta un IEntityModifierListener () y en el onModifierFinished hacer su limpieza de la explosión.

El siguiente código utiliza esa técnica para "atenuar" una puntuación del tablero de juego

 gemScore.registerEntityModifier(new AlphaModifier(2f, 1f, 0f, new IEntityModifierListener() { @Override public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) { // TODO Auto-generated method stub } @Override public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) { // TODO Auto-generated method stub runOnUpdateThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub board.detachChild(gemScore); } }); } })); 

HTH

Aquí hay un ejemplo de la DelayModifier – misma estructura básica

 mainScene.registerEntityModifier(new DelayModifier(3, new IEntityModifierListener() { @Override public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) { // TODO Auto-generated method stub } @Override public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) { // TODO Auto-generated method stub runOnUpdateThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mainScene.detachChild(sign); } }); } })); 
  • Mostrar un texto como textura con OpenGL ES 2.0
  • EglCreateWindowSurface falla con java.lang.IllegalArgumentException
  • La mejor práctica para usar Sprites en un juego usando AndEngine GLES2
  • Android se congela en OpenGL | ES (la CPU puede estar vinculada.
  • Cómo utilizar correctamente glDiscardFramebufferEXT
  • Problemas con la cámara OpenGL ES 2.0
  • GlDepthMask (GL_FALSE) trashes el búfer de cuadros en algunas GPUs
  • referencia indefinida glBindVertexArrayOES en eclipse
  • Cómo salvar SurfaceTexture como bitmap
  • Android - OpenGL ES 2.0: Emulador (Works) - Dispositivo (no)
  • La forma correcta de dibujar texto en OpenGL ES 2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.