91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宾川县| 会泽县| 仪陇县| 诸暨市| 东城区| 五指山市| 玉龙| 佛山市| 竹北市| 盱眙县| 辰溪县| 田林县| 澄江县| 开远市| 专栏| 尼勒克县| 象山县| 冀州市| 尚志市| 崇礼县| 通化县| 盐山县| 富宁县| 宜城市| 丰县| 门源| 张家川| 万宁市| 揭阳市| 新绛县| 西华县| 兴隆县| 茌平县| 秦皇岛市| 沙洋县| 马关县| 滁州市| 隆子县| 大城县| 新巴尔虎右旗| 崇阳县|