Cocos2d x 从CCNode调用时未执行runAction(非OnNet)
我有一个类,它是从我想要执行操作的方法之一扩展而来的 但没有一家公司在运行: 本课程:Cocos2d x 从CCNode调用时未执行runAction(非OnNet),cocos2d-x,Cocos2d X,我有一个类,它是从我想要执行操作的方法之一扩展而来的 但没有一家公司在运行: 本课程: class GameController : public CCNode 在这里,我还提到: void GameController::onEnter() { CCNode::onEnter(); } 这是我的代码: bool GameController::removeFinalGems(CCArray* gemsToRemove) { onGemScaleInAnim = CCCal
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方法在移植iOS CoCoCos2D应用程序时,我在CoCoCos2D-x上遇到了这个问题。 在runAction调用之后,添加以下代码行以检查暂停的目标是否是罪魁祸首:
CCDirector::sharedDirector()->getActionManager()->resumeTarget( this );
在我的例子中,这就是为什么没有运行操作的原因。似乎CCTransitionFade的屏幕转换导致了暂停。这可能是由于init期间完成了节点构造,尽管我尚未测试该理论。您试图同时调用OngEmScaleInIM和OnRemoveGemScaleInIM,即希望这两个动画同时运行?CCCallFunnd对象没有任何持续时间。只有操作具有。我在哪里设置持续时间?我只是把它放在excuteNope,CallFuncND根本没有持续时间。