LibGDX Scene2D:如何将动作应用于不在左下角的演员?

时间:2015-04-21 12:26:32

标签: java libgdx scene2d

以下是Main类的代码:

MyActor myActor = new MyActor;
moveAction = new MoveToAction();
moveAction.setPosition(600f, 750f);
myActor.addAction(moveAction);

以下是MyActor类的代码

@Override
public void draw(Batch batch, float alpha){
    batch.draw(texture,getX(),getY());
}

如果它是这样写的,动作将起作用,但纹理起始位置在左下角,如果我用其他坐标替换getX()和getY(),动作将不起作用,纹理将只是保持在同一个位置。那么我究竟如何设定演员的起始位置呢?

1 个答案:

答案 0 :(得分:1)

演员有自己的位置值。考虑到你使用它们在正确的位置绘制纹理,你可能知道这一点。因此,您需要做的是在创建Actor时设置Actor的初始位置。像这样:

MyActor myActor = new MyActor;
myActor.setPosition(100, 100);

现在,如果你想给演员一个移动到其他地方的动作,而不是创建一个新的MoveToAction,那么使用这样的Actions便利方法:

myActor.addAction(Actions.moveTo(600, 750));

这会立即将Actor移动到该位置,所以如果你想让Actor在一段时间内移动到那里,你必须像这样写这行:

myActor.addAction(Actions.moveTo(600, 750, duration));

duration是一个浮点数,它包含您希望actor进入指定位置的秒数。