Cómo detectar el final de la acción en Libgdx (0.9.7) de android
En la última versión de Libgdx (0.9.7 o libgdx-nightly-20120904), el oyente de la acción se elimina. Así que no sé cómo completar mi función de manera eficiente:
- Mover un sprite al destino.
- El movimiento contiene muchas MoveToActions o MoveByActions.
- Actúe la siguiente acción después de que termine el anterior.
- La acción de resto se puede modificar antes de actuar.
En realidad, el punto principal es cómo actuar la siguiente acción después de la anterior es el final, y creo que comparar el tiempo acto no es un método sabio.
¿Puede alguien ayudarme? Gracias !
- Android libgdx desliza la detección a la izquierda y la derecha mediante el uso de gesture listener
- Androide. Cómo mover el objeto en la dirección que se enfrenta (usando Vector3 y Quaternion)
- Me gustaría saber si hay una forma de poner un juego libgdx dentro de una aplicación para Android.
- No se puede dibujar ningún tipo de botón en la pantalla de menú del juego libgdx (android)
- Libgdx Scene2d - Set actor (TextField) de relleno?
- Usando ScreenUtils para guardar la captura de pantalla como imagen en libgdx
- LibGDX FreeType fuente borrosa
- Pase ArrayList desde el módulo android a núcleo en libgdx
- Obtener un actor por nombre en libgdx
- Libgdx textura imagen transparente hacer
- Configurar los juegos libgdx para que sean "diseñados para tabletas"
- ¿Cuándo usar actores en libgdx? ¿Cuáles son contras y pros?
- Cómo renderizar la imagen de la cámara YUV-NV21 de Android en el fondo en libgdx con OpenGLES 2.0 en tiempo real?
Creo que el mejor enfoque sería mantenerlo sencillo. Podrías encuestar si el actor tiene alguna acción dejada usando
if (actor.getActions().size() > 0) {no actions left!!}
Un buen lugar para colocar ese código estaría cerca del actor.act ();
De todos modos, puede ejecutar una secuencia de acciones usando una secuenciaAcción:
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*; ... actor.addAction(sequence(moveTo(200, 100, 2), moveBy(20,30, 3), delay(0.5f), rotateTo(180, 5)));
Eso ejecutaría esas acciones una tras otra a medida que terminaran.
Puedes consultar la documentación de los nightlies para más información aquí: http://code.google.com/p/libgdx/wiki/scene2d
Es eso lo que necesita? (No estoy seguro de haber entendido el paso 4).
Si necesita algo más específico por favor pregunte de nuevo. También puede echar un vistazo al código fuente de la clase Actor para tener una mejor comprensión de cómo se manejan las acciones. https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/scenes/scene2d/Actor.java
No estoy seguro de si esto responde a su pregunta, pero esta es una manera de simular un "escucha acciones completadas":
Action completeAction = new Action(){ public boolean act( float delta ) { // Do your stuff return true; } }; Action actions = sequence(fadeIn(1f), fadeOut(1f), completeAction);
(Fuente: http://steigert.blogspot.com.br/2012/07/13-libgdx-tutorial-libgdx-refactoring.html )
Libgdx 0.9.7
Action a = new Action(); render(){ if (a.getTime >= a.getDuration()) Gdx.app.log("a", "is done"); }
Advertencia en la acción de verificación isDone:
mientras
DelayAction.getTime> 0 y (delayAction.getTime <delayAction.getDuration)
entonces
Alpha.getTime> alpha.getDuration
hasta
DelayAction.getTime> delayAction.getDuration.
Ejemplo:
AlphaAction alpha = new AlphaAction(); alpha.setAlpha(0.2f); alpha.setDuration(1); DelayAction delayAction = new DelayAction(); delayAction.setDuration(1); SequenceAction sequenceAction = new SequenceAction(); sequenceAction.addAction(alpha); sequenceAction.addAction(delayAction);
Más en http://congdongandroid.vn/