【发布时间】:2017-03-30 17:59:17
【问题描述】:
我有一张演员表,他们正在做不同的动作(移动、跳跃等),我想在玩家移动时将所有演员都向左移动,所以我尝试了
setPosition(getX() - 1, getY());
但这似乎只会移动当前不忙于执行 MoveTo 动作的演员?我有敌人使用 MoveTo 动作从屏幕的一侧跑到另一侧,我希望他们继续这样做,但也以正确的速度向左移动。
我尝试在它们上添加额外的操作
MoveByAction move = new MoveByAction();
move.setAmount(1, 0);
addAction(Actions.forever(move));
但他们似乎仍在继续他们预设的 MoveTo 操作。
【问题讨论】:
-
我认为你应该在你的项目中真正实现一个摄像头,而不是在玩家向左移动时移动所有东西。gamefromscratch.com/post/2013/11/06/…
-
是的,移动相机和/或播放器更容易。您指出的是 Libgdx 中 Actions 的一个缺点。我认为您必须搜索每个 Actor 的动作以查找移动动作,获取最终位置,删除移动动作,并为其提供一个新的移动动作,其中最终位置偏移您想要的量。
-
您是否已将敌方演员添加到组对象中?这样您就可以移动父对象并获得所需的结果。
标签: java android libgdx scene2d