libgdx
Spostare gli attori sul percorso a velocità costante
Ricerca…
Semplice movimento tra due posizioni
Per questo la soluzione migliore è usare le actions
. Per aggiungere una nuova azione a un attore in Scene2D
basta chiamare:
Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);
Dove xey è la posizione target e la durata è la velocità di questo movimento in secondi ( float
).
Se vuoi interrompere questa azione (e l'attore), puoi farlo chiamando:
actorObject.removeAction(action);
oppure puoi rimuovere tutte le azioni chiamando:
actorObject.clearActions();
Ciò interromperà immediatamente l'esecuzione delle azioni.
L'azione moveTo manipola la proprietà x e y dell'attore, quindi quando si disegna l'attore sullo schermo usa sempre getX () e getY () per disegnare le trame. Proprio come nell'esempio seguente:
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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow