1

是否可以在移动动作期间改变CCSprite's位置,就像CCMoveBy? 我有一个CCSprite通过一堆动作循环的子类,其中一些是移动。我检查它是否已离开屏幕,然后尝试将其直接移动到屏幕的另一侧。因此,如果它在向左移动的中途离开屏幕左侧,它将从屏幕右侧完成移动。

但是如果我使用setPosition:它似乎不起作用,它只会完成它的移动动作。

4

2 回答 2

3

CCMoveTo(它CCMoveBy是一个子类)存储对象的初始位置,并在每次更新时向该存储位置添加一个增量,因此任何其他位置设置都将毫无意义,因为下一次更新会将其放回其旧路径。

您可以更改代码以使用两个CCMoveTo操作 - 一个将对象移出屏幕,另一个将其从另一侧移回。或者,您可以创建自己的操作(如果您不确定如何完成,请查看源代码)。CCMoveTo

于 2011-07-10T23:19:36.667 回答
1
[sprite stopAllActions];
sprite.position = rightSideOfScreen;
[sprite runAction:newMoveToLeftAction];

我期望这应该有效。如果您确实需要“继续执行该操作”而不是开始一个新操作,那么您将必须获取该操作运行了多长时间,并以应该剩余的时间量启动新操作。

于 2011-07-11T16:56:38.970 回答