gpt4 book ai didi

android - Libgdx - Action ;向多个 Actor 添加一个 Action

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:23 25 4
gpt4 key购买 nike

我已经定义了一组 Action ,我正在尝试将其添加到多个参与者中。这是代码:

        ParallelAction actions = new ParallelAction();

RotateByAction rotateAction = new RotateByAction();
rotateAction.setAmount(rotationAmount);

ScaleByAction scaleAction = new ScaleByAction();
scaleAction.setAmount(-0.01f);

DelayAction delayAction = new DelayAction();
delayAction.setDuration(0.05f);

RepeatAction rAction = new RepeatAction();
rAction.setCount(100);

actions.addAction(rotateAction);
actions.addAction(scaleAction);
actions.addAction(delayAction);
rAction.setAction(actions);



for(Monster mon : mons) // mons is ArrayList of type Monster (which extends Image)
mon.addAction(rAction);

但是上面的逻辑只是将 Action 添加到我的 ArrayList 中的最后一个 actor。为什么我不能对多个 Actor 使用相同的 Action ?我需要定义与 Actor 一样多的 Action ,还是有其他方法可以做到这一点?

我在这里查看了 Pool https://code.google.com/p/libgdx/wiki/scene2d我似乎没有掌握它。它对我的问题有用吗?如果是,那么如何?

最佳答案

因为所有 Actor 都必须引用一个序列。所以每个拥有序列的 Actor 都做同样的事情。例如,如果您为 10 个 Actor 使用 1 个 Sprite,并且您确实在 1 个 Actor 中更改了它,那么每个其他 Actor 也确实有更改。因此,如果您向 10 个 Actor 添加一个序列,它确实会加速 10 倍,因为来自一个 Actor 的每个 .act() 都会更新序列 (因为在每个 actor.act 内部它都会更新在增量时间更新所有操作!)。所以你确实更新了每个 Actor 的序列,这就是它不起作用的原因。您需要为每个正确的 Actor 创建​​一个新序列。只需将您的代码更改为:

for(Monster mon : mons){ // mons is ArrayList of type Monster (which extends Image)
RotateByAction rotateAction = new RotateByAction();
rotateAction.setAmount(rotationAmount);

ScaleByAction scaleAction = new ScaleByAction();
scaleAction.setAmount(-0.01f);

DelayAction delayAction = new DelayAction();
delayAction.setDuration(0.05f);

RepeatAction rAction = new RepeatAction();
rAction.setCount(100);

actions.addAction(rotateAction);
actions.addAction(scaleAction);
actions.addAction(delayAction);
rAction.setAction(actions);
mon.addAction(rAction);
}

这在初始化时可能需要更长的时间,但它应该可以纠正您的错误。

关于android - Libgdx - Action ;向多个 Actor 添加一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17855075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com