我正在尝试使用 CCSequence 为 Sprite 制作动画,我需要将参数传递给回调,但是当我这样做时我得到了
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000021
这是我的代码:
void Board::createExplotion(CCPoint boardPosition){
Mineral* mineralToAnimate = this->boardPieces[(unsigned char) boardPosition.y][(unsigned char) boardPosition.x];
CCArray* params = CCArray::create(mineralToAnimate, NULL);
params->retain();
CCSequence* s1 = CCSequence::create(
CCScaleTo::create(0.5f, SELECTED_SCALE),
CCScaleTo::create(0.25f, SELECTED_SCALE + 0.1),
CCCallFuncO::create(this, callfuncO_selector(Board::test), params )
//CCCallFunc::create(this, callfunc_selector(Board::test))
);
mineralToAnimate->runAction(s1);
}
void Board::test(CCNode* sender, CCObject* data){ ... }
我在没有参数的情况下尝试了相同的代码并且它有效。
我正在使用 eclipse,但调试器并没有多大帮助,或者至少我不知道如何做,adb logcat 显示了这一点:
构建指纹:
'samsung/espressowifixx/espressowifi:4.1.1/JRO03C/P3110XXCLK7:user/release-keys' pid: 4931, tid: 4946, name: Thread-32873 >>> org.cocos2dx.hellocpp <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000021 Stack frame #00 pc 00099ed2 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so (cocos2d::CCSequence::initWithTwoActions(cocos2d::CCFiniteTimeAction*, cocos2d::CCFiniteTimeAction*)+93) Stack frame #01 pc 00099fc9 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so (cocos2d::CCSequence::createWithTwoActions(cocos2d::CCFiniteTimeAction*, cocos2d::CCFiniteTimeAction*)+44) Stack frame #02 pc 0009a059 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so (cocos2d::CCSequence::createWithVariableList(cocos2d::CCFiniteTimeAction*, std::__va_list)+22) Stack frame #03 pc 0009a083 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so (cocos2d::CCSequence::create(cocos2d::CCFiniteTimeAction*, ...)+10) Stack frame #04 pc 0008ea5d /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so (Board::createExplotion(cocos2d::CCPoint)+100)
谢谢。
最佳答案
如果你想用 Action 回调发送数据,那么你必须使用节点和数据选择器而不是对象选择器。因此更改行:
CCCallFuncO::create(this, callfuncO_selector(Board::test), params )
到
CCCallFuncND::create(this, callfuncND_selector(Board::test), params )
关于android - 带参数的 CCCallback 的 Cocos2d-x 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919637/