CCRepeatForever不会按顺序重复操作

时间:2014-05-08 03:32:39

标签: cocos2d-x cocos2d-x-2.x

我有一些代码句子

CCSequence* seq2 = CCSequence::create(CCCallFunc::create(_clawNode, callfunc_selector(ClawNode::swing))
                                              , CCDelayTime::create(1.6)
                                              , CCCallFunc::create(_clawNode, callfunc_selector(ClawNode::dig))
                                              , CCDelayTime::create(0.1)
                                              , NULL
                                              );
        _clawNode->runAction(CCRepeatForever::create(seq2));

问题是CCRepeatForever不按顺序重复动作,它只做一次。任何人都知道如何解决这个问题?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

CCCallFunc中的选择器目标对象应该是CCLayer,其中添加了您的节点。因此你应该使用:

CCSequence* seq2 = CCSequence::create(CCCallFunc::create(this, callfunc_selector(ClawNode::swing))
                                              , CCDelayTime::create(1.6)
                                              , CCCallFunc::create(this, callfunc_selector(ClawNode::dig))
                                              , CCDelayTime::create(0.1)
                                              , NULL
                                              );
        _clawNode->runAction(CCRepeatForever::create(seq2));

除此之外,您的代码还可以。如果要在回调函数中停止节点的操作,可以检查是否在其他任何位置。