请帮助我解决我的问题。我需要将一个 Actor 移动到另一个 Actor 的动态坐标。如果我使用 MoveToAction,Actor 会移动到另一个 Actor 的给定 GetX() 和 GetY() 坐标,但不会跟随它移动。
这个简单的代码将 Actor 移动到另一个 Actor 的旧坐标。我希望游戏元素跟随移动的玩家。:
game_element = new GameContainer();
stage.addActor(game_element);
game_element.addAction(Actions.moveTo(player.getX(), player.getY(), 2));
但是如果我在游戏元素移动到玩家的那一刻移动玩家,那么他就会到达旧坐标,并且不会跟随他。 这如何在 LibGDX 中实现?
创建动作来移动三分之二的距离,
重新计算目标..
将1和2放在一个序列Action中,将其添加到追逐的Action中..
重复 1-3 直到靠近。
无效的chasePlayer(){ xDistance =player.getX()-getX(); yDistance =player.getY()-getY(); int 实际距离 = Mathutils.sqrt(xDistancexDistance + yDistanceyDistance); if(实际距离 < distance_threshold){ // ... Stop chasing player... // .. do target reached part }
// calculate time based on speed and distance...
timeForThisMove = actualDistance * 0.66f / mySpeed;
MoveByAction act1 = (Actions.moveBy(xDistance*0.66f, yDistance*0.66f, timeForThisMove));
Runnable reCalculateTarget = new Runnable() {
@Override
public void run() {
chasePlayer()
}
};
// This will set two actions in sequence.. chase 2/3rd and recalculating
game_element.addAction(Actions.sequence(act1, Actions.run(reCalculateTarget));
}