日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cocos2d-x编程中CCRemoveSelf与CCCallFunc系列函数不能一起使用

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cocos2d-x编程中CCRemoveSelf与CCCallFunc系列函数不能一起使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

????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實現添加到場景中文本標簽的自動移除。并且,在移除結束后,執行一個簡短代碼。


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


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

處給出如下解釋:

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

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

1.參數傳遞順序

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

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

__stdcall表示

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

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

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

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


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


總之吧,根據上述錯誤,可以大致判斷出,錯誤在函數調用格式出了問題。結合上述圖片位置和前面的代碼,我大致判斷出了如本文題目所示的結論,即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);




總結

以上是生活随笔為你收集整理的Cocos2d-x编程中CCRemoveSelf与CCCallFunc系列函数不能一起使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。