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