我有一个类,它是从我希望执行操作的方法之一扩展的CCNode 但是没有一个在运行: 来自这堂课:
class GameController : public CCNode
我还有这个:
void GameController::onEnter()
{
CCNode::onEnter();
}
这是我的代码:
bool GameController::removeFinalGems(CCArray* gemsToRemove)
{
onGemScaleInAnim = CCCallFuncND::create(this,
callfuncND_selector(GameController::OnGemScaleInAnim),gemsToRemove);
onRemoveGemScaleInAnim = CCCallFuncND::create(this,
callfuncND_selector(GameController::OnRemoveGemScaleInAnim),gemsToRemove);
CCSequence* selectedGemScaleInAndRemove = CCSequence::create(onGemScaleInAnim,
onRemoveGemScaleInAnim,
NULL);
bool b = this->isRunning();
CCAction *action = this->runAction(selectedGemScaleInAndRemove);
return true;
}
void GameController::OnGemScaleInAnim(CCNode* sender,void* data)
{
CCArray *gemsToRemove = (CCArray*) data;
}
void GameController::OnRemoveGemScaleInAnim(CCNode* sender,void* data)
{
CCArray *gemsToRemove = (CCArray*) data;
}
我还添加了检查以查看是否有前后运行的操作 它看起来像是等于0之前和之后等于1
int na = this->numberOfRunningActions(); //equal 0
CCAction *action = this->runAction(selectedGemScaleInAndRemove);
int na0 = this->numberOfRunningActions();//equal 1 so there is action
它永远不会进入OnRemoveGemScaleInAnim和OnGemScaleInAnim方法
答案 0 :(得分:0)
在移植iOS cocos2d应用程序时,我在cocos2d-x上遇到了这个问题。 在“runAction”调用之后,添加以下代码行以检查暂停的目标是否是罪魁祸首:
CCDirector::sharedDirector()->getActionManager()->resumeTarget( this );
就我而言,这就是为什么没有采取行动的原因。似乎CCTransitionFade(来自屏幕转换)导致暂停。这可能是由于在init期间完成节点的构建,尽管我还没有测试过这个理论。