簡體   English   中英

LibGDX Scene2D:如何將動作應用於不在左下角的actor?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM