サーチ…


2つの場所間の簡単な移動

このためには、 actionsを使用するのが最善の解決策です。 Scene2Dアクタに新しいアクションを追加するには:

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

ここで、xとyは目標位置であり、durationはこの移動の秒単位の速度です( 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