[英]LibGDX Scene2D: How to apply actions to actors which are not located at bottom left corner?
這是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(),則該動作將不起作用,紋理將僅停留在相同的位置。 那么我如何准確地設置演員的起始位置呢?
演員有自己的位置值。 考慮到要使用它們在正確的位置繪制紋理,您可能知道這一點。 因此,您需要做的是在創建Actor時設置其初始位置。 像這樣:
MyActor myActor = new MyActor;
myActor.setPosition(100, 100);
現在,如果要給actor一個動作以移動到其他地方,而不是創建一個新的MoveToAction
,請使用如下所示的Actions
便捷方法:
myActor.addAction(Actions.moveTo(600, 750));
這會將Actor立即移動到該位置,因此,如果您希望Actor在一定時間內移動到該位置,則必須這樣編寫該行:
myActor.addAction(Actions.moveTo(600, 750, duration));
duration
是一個浮點數,其中包含您希望角色到達指定位置所花費的秒數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.