libgdx
Moviendo actores en camino con velocidad constante.
Buscar..
Movimiento simple entre dos ubicaciones.
Para esto la mejor solución es usar actions
. Para agregar una nueva acción a un actor en Scene2D
simplemente llame:
Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);
Donde x e y es la ubicación objetivo y la duración es la velocidad de este movimiento en segundos ( float
).
Si desea detener esta acción (y el actor), puede hacerlo llamando a:
actorObject.removeAction(action);
o puedes eliminar todas las acciones llamando a:
actorObject.clearActions();
Esto detendrá inmediatamente la ejecución de la (s) acción (es).
La acción moveTo manipula las propiedades x e y del actor, de modo que cuando dibuje el actor en la pantalla, utilice siempre getX () y getY () para dibujar texturas. Al igual que en el siguiente ejemplo:
public class MovingActor extends Actor {
private Action runningAction;
private float speed = 2f;
public void moveTo(Vector2 location) {
runningAction = Actions.moveTo(location.x, location.y, speed);
this.addAction(runningAction);
}
public void stopAction() {
this.removeAction(runningAction);
}
public void stopAllActions() {
this.clearActions();
}
@Override
public void draw(Batch batch, float parentAlpha){
batch.draw(someTexture, getX(), getY());
}
}
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow