[英]Cocos2d-x problems with CCCallback with arguments
我正在嘗試使用CCSequence為Sprite制作動畫,我需要將參數傳遞給回調,但是當我這樣做時,我得到了
信號11(SIGSEGV),代碼1(SEGV_MAPERR),故障加法器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 <<<信號11(SIGSEGV) ,代碼1(SEGV_MAPERR),故障附加器00000021堆棧幀#00 pc 00099ed2 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so(cocos2d :: CCSequence :: initWithTwoActions(cocos2d :: CCFiniteTimeAction *,cocos2d ::: CCFiniteTimeAction *)+ 93)堆棧幀#01 pc 00099fc9 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so(cocos2d :: CCSequence :: createWithTwoActions(cocos2d :: CCFiniteTimeAction *,cocos2d :: CCFiniteTimeAction *)+ 44)堆棧幀#02 pc 0009a059 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so(cocos2d :: CCSequence :: createWithVariableList(cocos2d :: CCFiniteTimeAction *,std :: __ va_list)+22)堆棧幀# 03 pc 0009a083 /data/data/org.cocos2dx.hellocpp/lib/libhellocpp.so(cocos2d :: CCSequence :: create(cocos2d :: CCFiniteTimeAction *,...)+ 10)堆棧框架#04 pc 0008ea5d / data /數據/ org.cocos2dx.hellocpp / lib / libhellocpp.so(董事會:: cr eateExplotion(cocos2d的:: CCPoint)+100)
謝謝。
如果要通過操作回調發送數據,則必須使用“節點和數據”選擇器而不是“對象”選擇器。 因此更改行:
CCCallFuncO::create(this, callfuncO_selector(Board::test), params )
至
CCCallFuncND::create(this, callfuncND_selector(Board::test), params )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.