如何在 cocos2d 中停止 runAction

Posted

技术标签:

【中文标题】如何在 cocos2d 中停止 runAction【英文标题】:How to stop runAction in cocos2d 【发布时间】:2013-04-10 05:49:29 【问题描述】:

如何在一段时间后停止游戏中的所有动作?

在下面的代码中,我在精灵上调用 runaction。

id actionMove = [CCMoveTo actionWithDuration:actualDuration*2.5 position:ccp(winSize.width + (target.contentSize.width/2), actualY)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];
id sequece = [CCSequence actions:delayTime1, calFun1, delayTime2, calFun2,actionMove, actionMoveDone, nil];
id repeate = [CCRepeatForever actionWithAction:sequece];

[target runAction:repeate];

在这段代码中,精灵不断移动。如何在一段时间或某种条件后停止上述动作?

【问题讨论】:

【参考方案1】:

runAction call Functionstop action 中为sprite

[CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)];

- (void)setInvisiblestone:(CCNode *)node

    [target stopAllActions];

【讨论】:

runaction 是每 1 秒后调用 periodacllay .. 甚至目标也不是单个对象。它不止一次。 runaction 从 -(void)addTraget:(ccTime)dt 调用,addTraget 调用为 [self schedule:@selector(addTraget:) interval:1.5];那么如何停止这个动作呢?这是预定的 你可以使用这个代码...[self unschedule:@selector(addTraget:)] or [self schedule:@selector(addTraget:) interval:1.5 repeat:NO delay:NO]; 【参考方案2】:

方法中的所有动作都停止。

-(void)gameover

     [self unscheduleAllSelectors];

【讨论】:

请在代码前使用4个空格将其格式化为代码。 请详细说明这段代码是如何回答这个问题的。

以上是关于如何在 cocos2d 中停止 runAction的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递给回调函数COCOS2D Android

Sprite Kit runAction 延迟,奇怪的错误?

在 cocos2d 中停止 Sprite 动画

cocos2d 动画从后台返回时停止

如何停止或暂停 SKAction 播放音乐? - 斯威夫特

replacescene 在我的游戏 cocos2d ios 中停止背景音乐