Acciones de los actores en libgdx
He hecho mi Actor , pero no estoy claro cómo aprovechar los métodos de action
y act
. Fuera del Javadoc básico, no he encontrado un buen tutoriales sobre estos métodos.
¿Puede alguien dar un ejemplo con comentarios para las acciones sobre los actores?
- ¿Puedo eliminar com.google.android.gms.version de AndroidManifest cuando uso gradle?
- La UI de configuración de Libgdx da 2 errores inesperados en el nuevo proyecto GWT
- Kindle Fire cambia la resolución de pantalla en algún momento ...
- La pestaña 'Leaderboard` que no se muestra en Google Play Games, mientras que la pestaña `Achievements` está allí
- Libgdx - IllegalStateException en una ubicación desconocida
- En libgdx en Android, ¿cómo puedo guardar el estado del juego en caso de que se muera la aplicación?
- Renderizado de vídeo en una textura en LibGDX
- ¿Cómo hacer que la clase AndroidApplication de LibGDX admita Fragmentos de Android?
- Ahorre batería al no dibujar en cada llamada de procesamiento
- Android Intent y startActivity en Libgdx (clase Non Activity o AndroidApplication)
- Rotación de la cámara ortográfica
- LibGDX - Camera.update () llamada no hace nada
- Problema de Android Studio gradle 2.1.3
Esta respuesta está siendo obsoleta debido a cambios en LibGDX. Para documentación actualizada, vea la página wiki de scene2d .
Existen varias acciones disponibles en LibGDX listas para usted. Están en el paquete com.badlogic.gdx.scenes.scene2d.actions
. Yo diría que hay 3 tipos de acciones:
- Acciones de animación
- Acciones compuestas
- Otras acciones
Las acciones de animación modifican diversas propiedades de su actor, como ubicación, rotación, escala y alfa. Son:
- FadeIn – cambia alfa de tu actor de alfa actual del actor a 1
- FadeOut – cambia el alfa de tu actor del alfa actual del actor a 0
- FadeTo – cambia alfa de tu actor del alfa actual del actor a un valor específico
- MoveBy – mueve a tu actor por cantidad específica
- MoveTo: mueve tu actor a una ubicación específica
- RotateBy – gira tu actor por ángulo específico
- RotateTo – gira tu actor a un ángulo específico
- ScaleTo – escala su actor a un factor de escala específico
Las acciones compuestas combinan múltiples acciones en una acción, existen:
- Paralelo – ejecuta acciones dadas en paralelo – todas las acciones a la vez
- Secuencia – ejecuta acciones dadas en secuencia – una tras otra
Otras acciones:
- Repetir – repite la acción dada n veces
- Forever – repite una acción dada para siempre
- Retardo – retrasa la ejecución de una acción determinada por un período específico de tiempo
- Eliminar – elimina el actor dado de la etapa
Cada acción tiene un método estático $
que crea la instancia de esa Acción. Ejemplo de creación de acciones de animación:
MoveTo move = MoveTo.$(200, 200, 0.5f); //move Actor to location (200,200) in 0.5 s RotateTo rotate = RotateTo.$(60, 0.5f); //rotate Actor to angle 60 in 0.5 s
Ejemplo de creación de una secuencia de acción más compleja:
Sequence sequence = Sequence.$( MoveTo.$(200, 200, 0.5f), //move actor to 200,200 RotateTo.$(90, 0.5f), //rotate actor to 90° FadeOut.$(0.5f), //fade out actor (change alpha to 0) Remove.$() //remove actor from stage );
Las acciones de animación también le permiten especificar Interpolator
. Hay varias implementaciones:
- AccelerateDecelerateInterpolator
- AccelerateInterpolator
- AnticipateInterpolator
- DecelerateInterpolator
- Interpolador Lineal
- OvershootInterpolator
Interpolador Javadoc: Un interpolador define la velocidad de cambio de una animación. Esto permite acelerar, desacelerar los efectos de animación básicos (alpha, scale, translate, rotate). Para configurar el interpolador a su acción:
action.setInterpolator(AccelerateDecelerateInterpolator.$());
Cuando usted tiene su acción con el interpolador listo, entonces usted fija esa acción a su agente:
actor.action(yourAction);
Para ejecutar todas las acciones definidas para los actores en el escenario, tiene que llamar a stage.act (…) en su método render:
stage.act(Gdx.graphics.getDeltaTime()); stage.draw();
Aquí hay un enlace útil para los usos de la clase com.badlogic.gdx.math.Interpolation . Así, por ejemplo, para crear un movimiento con un efecto que podría simplemente utilizar:
myActor.addAction(Actions.moveTo(100, 200, 0.7f, Interpolation.bounceOut));
Si establece la clase de acciones import como estática (tiene que configurarla manualmente):
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*;
Entonces, puedes usar tus acciones como estas:
myActor.addAction(moveTo(100, 200, 0.7f, Interpolation.bounceOut));
Usted debe dar una oportunidad a Universal Tween Engine. Es fácil de usar y muy potente … y hace que la lectura de animaciones complejas pasee por el parque porque todos los comandos pueden ser encadenados. Vea los ejemplos abajo.
Pasos:
1. Descargue la biblioteca de aquí
2. Cree una clase de accesor. Usted puede ahorrar el tiempo y asir el que yo estaba usando desde aquí .
3. En su clase de juego declare el TweenManager
public static TweenManager tweenManager;
En el método create :
tweenManager = new TweenManager();
En el método render :
tweenManager.update(Gdx.graphics.getDeltaTime());
4. Utilícelo como quiera. Ex.
Mueva el actor a la posición (100, 200) en 1,5 segundos con interpolación elástica:
Tween.to(actor, ActorAccesor.POSITION_XY, 1.5f) .target(100, 200) .ease(Elastic.INOUT) .start(tweenManager);
Crear una secuencia compleja de animaciones:
Timeline.createSequence() // First, set all objects to their initial positions .push(Tween.set(...)) .push(Tween.set(...)) .push(Tween.set(...)) // Wait 1s .pushPause(1.0f) // Move the objects around, one after the other .push(Tween.to(...)) .push(Tween.to(...)) .push(Tween.to(...)) // Then, move the objects around at the same time .beginParallel() .push(Tween.to(...)) .push(Tween.to(...)) .push(Tween.to(...)) .end() // And repeat the whole sequence 2 times .repeatYoyo(2, 0.5f) // Let's go! .start(tweenManager);
Más detalles aquí
UPDATE: reemplazado enlace muerto
- Android SharedPreferences con MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITABLE
- Compilación de código C ++ (XCode) para iOS y Android. ¿Es real?