libgdx
Poruszanie aktorów po ścieżce ze stałą prędkością
Szukaj…
Prosty ruch między dwiema lokalizacjami
W tym celu najlepszym rozwiązaniem jest użycie actions
. Aby dodać nową akcję do aktorów w Scene2D
wystarczy wywołać:
Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);
Gdzie xiy to miejsce docelowe, a czas trwania to prędkość tego ruchu w sekundach (liczba float
).
Jeśli chcesz zatrzymać tę akcję (i aktora przez nią), możesz to zrobić, dzwoniąc:
actorObject.removeAction(action);
lub możesz usunąć wszystkie akcje, dzwoniąc:
actorObject.clearActions();
Spowoduje to natychmiastowe zatrzymanie działania.
Operacja moveTo manipuluje właściwością xiy aktora, dlatego rysując aktora na ekranie, zawsze używaj getX () i getY () do rysowania tekstur. Podobnie jak w poniższym przykładzie:
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow