Поиск…


Простое перемещение между двумя местоположениями

Для этого лучшим решением является использование actions . Чтобы добавить новое действие актерам в Scene2D просто вызовите:

Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);

Где x и y - целевое местоположение, а длительность - это скорость этого движения в секундах ( float ).

Если вы хотите остановить это действие (и его актером), вы можете сделать это, позвонив:

actorObject.removeAction(action);

или вы можете удалить все действия, позвонив:

actorObject.clearActions();

Это немедленно остановит выполнение действий.

Действие moveTo управляет свойствами x и y актера, поэтому, когда вы рисуете актера на экране, всегда используйте getX () и getY () для рисования текстур. Как и в следующем примере:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow