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?
- GTA2 como Car Physics, pero extremadamente simplificado
- Botón de encendido Crear problema en el juego de AndEngine
- Andengine problema de textura extraña
- AndEngine, Move Sprite sin problemas usando Accelerometer & PhysicsWorld
- Android andengine ejemplos
¡Gracias!
- Captura de pantalla en andengine da al revés la imagen de espejo
- Inicio de sesión de Facebook android
- Java.lang.IndexOutOfBoundsException: El índice no válido 13, el tamaño es 13
- Puerto Andengine juego a otra plataforma?
- ¿Cómo uso andengine con maven?
- AndEngine Juego Loop. ¿Dónde está?
- Queue multiple entity modifiers in AndEngine
- Chase cámara con sprite en andengine
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;
- Método de llamada de otra clase usando contextos
- Cómo comprobar si existe una clave en Json Object y obtener su valor