0

我正在研究 cocos2d V3.x 项目(SpriteBuilder V1.2.1)。当前尝试在 CCSprite 上延迟运行此动作序列。我不确定是否有问题,或者我只是不明白 CCActionSequence 是如何工作的。

我希望动作“a”开始,完成后(2 秒后)延迟(5 秒),然后调用两个函数(动作“c”和“d”)。但是在模拟器中,顺序是错误的(在“c”之前调用了“d”),并且在“a”开始旋转后大约 1 秒调用了它们。

我做错什么了吗?如果这是 CCActionSquence 的实际工作方式,我该怎么做才能使其按照我在上一段中解释的方式工作?

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360];
CCAction *b = [CCActionDelay actionWithDuration:5];
CCAction *c = [CCActionCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)];
CCAction *d = [CCActionCallFunc actionWithTarget:self selector:@selector(endTurn)];
[[_arregloBolitas objectAtIndex:random] runAction:[CCActionSequence actionWithArray:@[a,b,c,d]]];

谢谢!

4

1 回答 1

0

您可以将动作'c'和'd'放入CCSpawn,然后它们将同时运行。也用于CCDelayTime延迟最后两个动作。

请试试这个

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360];
CCAction *b = [CCDelayTime actionWithDuration:5];
CCAction *c = [CCCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)];
CCAction *d = [CCCallFunc actionWithTarget:self selector:@selector(endTurn)];
[[_arregloBolitas objectAtIndex:random] runAction:[CCSequence actions: a, b, c, d, nil]];

我没有你的环境,你可能需要修改一下。谢谢。

于 2014-10-20T00:27:50.157 回答