Botón de pausa de Andengine en pantalla

Quiero crear un botón de pausa en pantalla en andengine

Lo que hago ahora es añadir un sprite y cuando lo toco, hago engine.stop (), el problema con esto, es que el motor no maneja más touchvents hasta que reanude el juego (ahora uso el botón de menú para esto), así que hay una manera de lograrlo?

¡Gracias!

Mira los ejemplos de AndEngine, hay un proyecto que muestra el uso de menús en AndEngine, encontrarás una mejor manera de implementar un menú que no sea detener el motor. ¡Buena suerte!

Encontré que la mejor manera de hacerlo es crear una escena, y cuando está pausada, establezca override the onManagedUpdate de esta manera

@Override onManagedUpdate(float pSecondsElapsed){ if(mPaused) super.onManagedUpdate(0); else super.onManagedUpdate(pSecondsElapsed); } 

De esta manera todo funciona perfectamente, y lo puedes hacer en una capa de juego y tener la capa del menú actualizada como de costumbre,

usted puede hacer en el botón de la pausa de la pantalla bastante fácilmente. Lo que necesitas hacer es crear un botón de pausa en cualquier parte de la pantalla, al tocar ese botón, mostrar un MenúScene con el botón de reproducción sobre el botón de pausa original. Puede utilizar .setPosition () para MenuItem si comenta el código .buildAnimations () del ejemplo de PauseMenu.

Para demostrar la idea, he hecho una actividad simple para mostrar su posible. Echa un vistazo y prueba por ti mismo.

Enlace: https://github.com/reittes/On-Screen-Pause-Button

Buena suerte

Lo que haría es añadir un booleano "pausado" en su archivo y luego hacer que el botón lo establezca como true, y luego incluir el motor de actualización con un bloqueo if (!pause) {...} para detener la actualización cuando está pausado . No es la solución más elegante, pero trabajó en mi juego y no causó problemas de rendimiento en la falta de pausa.

Código psedu

 @Override public boolean onKeyDown(final int pKeyCode, final KeyEvent pEvent) { if (pKeyCode == KeyEvent.KEYCODE_MENU && pEvent.getAction() == KeyEvent.ACTION_DOWN) { if (this.mEngine.isRunning()) { gSceneGlobal.setChildScene(this.mGamePauseScene, false, true, true); this.mEngine.stop(); } else { gSceneGlobal.clearChildScene(); this.mEngine.start(); } return true; } else { return super.onKeyDown(pKeyCode, pEvent); } } 

Creo mi clase (MyEngine extends Engine) y cambié

 @Override public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) { if(!isRunning()) { // add your code for engine.stop(); } } 

y crear motor MyEngine en la clase de juego;

  • ¿Qué está mal con mi código PhysicsRemoveExample.java (AndEngine)?
  • Pasar datos adicionales para fragmentar el shader a través de VBO - DynamicSpriteBatch
  • Andengine texto indexoutofbounds excepción
  • Mover sprite en Andengine
  • Android Andengine mala calidad de la textura
  • AndEngineRuntimeException: dispositivo intrínsecamente incompatible detectado.
  • ¿Cómo obtener una captura de pantalla en doble resolución?
  • Añadir fondo a la escena Andengine Android
  • ¿Cómo puedo crear un círculo con un número?
  • Captura de doble taps en Android
  • desbloqueo de niveles en la lógica del juego de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.