是否可以在移动动作期间改变CCSprite's
位置,就像CCMoveBy?
我有一个CCSprite
通过一堆动作循环的子类,其中一些是移动。我检查它是否已离开屏幕,然后尝试将其直接移动到屏幕的另一侧。因此,如果它在向左移动的中途离开屏幕左侧,它将从屏幕右侧完成移动。
但是如果我使用setPosition:
它似乎不起作用,它只会完成它的移动动作。
是否可以在移动动作期间改变CCSprite's
位置,就像CCMoveBy?
我有一个CCSprite
通过一堆动作循环的子类,其中一些是移动。我检查它是否已离开屏幕,然后尝试将其直接移动到屏幕的另一侧。因此,如果它在向左移动的中途离开屏幕左侧,它将从屏幕右侧完成移动。
但是如果我使用setPosition:
它似乎不起作用,它只会完成它的移动动作。
CCMoveTo
(它CCMoveBy
是一个子类)存储对象的初始位置,并在每次更新时向该存储位置添加一个增量,因此任何其他位置设置都将毫无意义,因为下一次更新会将其放回其旧路径。
您可以更改代码以使用两个CCMoveTo
操作 - 一个将对象移出屏幕,另一个将其从另一侧移回。或者,您可以创建自己的操作(如果您不确定如何完成,请查看源代码)。CCMoveTo
[sprite stopAllActions];
sprite.position = rightSideOfScreen;
[sprite runAction:newMoveToLeftAction];
我期望这应该有效。如果您确实需要“继续执行该操作”而不是开始一个新操作,那么您将必须获取该操作运行了多长时间,并以应该剩余的时间量启动新操作。