以下是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(),动作将不起作用,纹理将只是保持在同一个位置。那么我究竟如何设定演员的起始位置呢?
答案 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进入指定位置的秒数。