使用 callfuncND 在 Iphone6 的模拟器中 Cocos2dx 崩溃
Cocos2dx crash in simulator of Iphone6 using callfuncND
我用的是cocos2dx 3.9,但是在Iphone6的模拟器中代码崩溃,但是在Iphone4s的模拟器中运行正确
void BattleHeroIconCSBLayer::doEffectValue4(CCNode *node)
{
CCCallFuncND *remove = CCCallFuncND::create(node, callfuncND_selector(BattleHeroIconCSBLayer::effectNodeCallBack4), (void*)0);
auto *seq1 = CCSequence::create(MoveBy::create(1.0, ccp(width - node->getContentSize().width, 0)), remove, NULL);
auto *seq2 = CCSequence::create(FadeIn::create(0.3), DelayTime::create(0.4), FadeOut::create(0.3), NULL);
auto *spawn = Spawn::create(seq1, seq2, NULL);
node->runAction(spawn);
}
在 BattleHeroIconCSBLayer::effectNodeCallBack4 中,我喜欢这样:
void BattleHeroIconCSBLayer::effectNodeCallBack4(CCNode* pTarget, void* data)
{
mBuffBack->setVisible(false);
pTarget->removeFromParentAndCleanup(true);
}
mBuffBack是我的成员变量,我是从cocostudio获取的:
mBuffBack = static_cast<Sprite*>(node->getChildByName("mBuffBack"));
但我在
崩溃了
mBuffBack->setVisible(false);
使用 iphone6 的模拟器;
有人可以帮助我吗?
根据建议,我使用了这段代码
auto remove = CallFunc::create( CC_CALLBACK_0(BattleHeroIconCSBLayer::effectNodeCallBack4, this, node, (void*)0));
代替
CCCallFuncND *remove = CCCallFuncND::create(node, callfuncND_selector(BattleHeroIconCSBLayer::effectNodeCallBack4), (void*)0);
它 运行 好的;但我不知道为什么;
我用的是cocos2dx 3.9,但是在Iphone6的模拟器中代码崩溃,但是在Iphone4s的模拟器中运行正确
void BattleHeroIconCSBLayer::doEffectValue4(CCNode *node)
{
CCCallFuncND *remove = CCCallFuncND::create(node, callfuncND_selector(BattleHeroIconCSBLayer::effectNodeCallBack4), (void*)0);
auto *seq1 = CCSequence::create(MoveBy::create(1.0, ccp(width - node->getContentSize().width, 0)), remove, NULL);
auto *seq2 = CCSequence::create(FadeIn::create(0.3), DelayTime::create(0.4), FadeOut::create(0.3), NULL);
auto *spawn = Spawn::create(seq1, seq2, NULL);
node->runAction(spawn);
}
在 BattleHeroIconCSBLayer::effectNodeCallBack4 中,我喜欢这样:
void BattleHeroIconCSBLayer::effectNodeCallBack4(CCNode* pTarget, void* data)
{
mBuffBack->setVisible(false);
pTarget->removeFromParentAndCleanup(true);
}
mBuffBack是我的成员变量,我是从cocostudio获取的:
mBuffBack = static_cast<Sprite*>(node->getChildByName("mBuffBack"));
但我在
崩溃了mBuffBack->setVisible(false);
使用 iphone6 的模拟器;
有人可以帮助我吗?
根据建议,我使用了这段代码
auto remove = CallFunc::create( CC_CALLBACK_0(BattleHeroIconCSBLayer::effectNodeCallBack4, this, node, (void*)0));
代替
CCCallFuncND *remove = CCCallFuncND::create(node, callfuncND_selector(BattleHeroIconCSBLayer::effectNodeCallBack4), (void*)0);
它 运行 好的;但我不知道为什么;