【问题标题】:Set position of an actor in LibGDX that have an action在 LibGDX 中设置有动作的演员的位置
【发布时间】: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


【解决方案1】:

简短的回答:你不能那样做。我不得不用 setPosition(getX() + 1, getY()); 移动演员。如果我想单独移动它们,而不是使用动作。

还必须使用相机一次“移动”整个场景。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多