亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cocos2d-x編程中CCRemoveSelf與CCCallFunc系列函數不能一起使用

發布時間:2020-08-10 10:26:31 來源:網絡 閱讀:666 作者:googlingman 欄目:游戲開發

可能是“頭暈”了,我在編碼中隨意寫出了如下代碼:

    CCLabelTTF* lbl=CCLabelTTF::create("Hi, you have succeeded in buying this Power-up!", "Arial", 32);
    lbl->setColor(ccc3(255,0,0));
    lbl->setPosition(VisibleRect::center());
    ul2->addChild(lbl,99);
    CCActionInterval*  scaleto = CCScaleTo::create(2.0f, 2.5f);
    CCActionInterval*  fadeout = CCFadeOut::create(2.0f);
    CCLog("********************************");
    CCAction*  s = CCSequence::create(
        CCDelayTime::create(1),        
        scaleto,
        fadeout,
        CCRemoveSelf::create(),
        CCCallFunc::create(this, callfunc_selector(StoreScene::callbackForBuyOK)), 
        NULL);
    lbl->runAction(s);
    //...
void StoreScene::callbackForBuyOK( CCObject* pSender )
{
    UIButton* btnBuy = dynamic_cast<UIButton*>(ul2->getWidgetByName("Button_Buy"));
    btnBuy->setEnabled(false);
}

我的想法很簡單,可能你也猜測出了,就是當玩家購買某道具結束后,出現一個動態文字提示。而且,借助于CCRemoveSelf實現添加到場景中文本標簽的自動移除。并且,在移除結束后,執行一個簡短代碼。


但是,實際運行上述代碼時出現如下運行時錯誤:

Cocos2d-x編程中CCRemoveSelf與CCCallFunc系列函數不能一起使用


相信,上述錯誤你有所了解。搜索了一下網絡,有朋友在
http://azykise.blog.163.com/blog/static/1730802442011616103252723/

處給出如下解釋:

這可能是函數調用約定不一致或者參數傳遞出錯。

函數調用約定主要約束了兩件事:

1.參數傳遞順序

2.調用堆棧由誰(調用函數或被調用函數)清理

常見的函數調用約定:stdcall cdecl fastcall thiscall naked call

__stdcall表示

1.參數從右向左壓入堆棧

2.函數被調用者修改堆棧

3.函數名自動加前導的下劃線,后面緊跟一個@符號,其后緊跟著參數的尺寸

        用depends就可以看到函數的導出名。


而我的代碼運行時錯誤停留在了如下位置:

Cocos2d-x編程中CCRemoveSelf與CCCallFunc系列函數不能一起使用


總之吧,根據上述錯誤,可以大致判斷出,錯誤在函數調用格式出了問題。結合上述圖片位置和前面的代碼,我大致判斷出了如本文題目所示的結論,即CCRemoveSelf與CCCallFunc系列函數不能一起使用!


其實,進一步想來,上述兩種Action也沒有必要一起使用。于是,前面的代碼可以修改為如下即可解決問題:

   

CCAction*  s = CCSequence::create(
        CCDelayTime::create(1),        
        scaleto,
        fadeout,
        CCRemoveSelf::create(),
        NULL);
    lbl->runAction(s);
    UIButton* btnBuy = dynamic_cast<UIButton*>(ul2->getWidgetByName("Button_Buy"));
    btnBuy->setEnabled(false);




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西城区| 静安区| 厦门市| 万宁市| 昆山市| 昌宁县| 凌海市| 邛崃市| 历史| 盘锦市| 双柏县| 沿河| 天镇县| 蛟河市| 闸北区| 长宁区| 凤台县| 团风县| 蕲春县| 太康县| 灌南县| 宁武县| 宁蒗| 攀枝花市| 天长市| 松江区| 滦平县| 延长县| 鹤山市| 津南区| 渝北区| 凉城县| 丹寨县| 慈溪市| 贡嘎县| 赣州市| 东兰县| 类乌齐县| 勃利县| 娄底市| 石林|