您好,登錄后才能下訂單哦!
初學者在學習代碼階段偶爾會把項目代碼拿過來編譯,然后看下運行結果再研究代碼。如果別人的項目代碼是用cocos2d-x 3.0之前的版本編寫的,而自己用的cocos2d-x是3.0以后的,編譯的時候經常會碰到如下問題:
Error:class "cocos2d::Director"沒有成員"getTouchDispatcher"
在3.0版本以前,之前所用的 CCTouchBegan、CCTouchMoved、CCTouchEnd這些都已經不能再用了,現在是讓監聽器自己綁定函數。
解決辦法如下:
1、將該報錯語句注釋掉
//pDirector->getTouchDispatcher()->addTargetedDelegate(this,0, true);
2、在需要觸摸響應界面的初始函數init()加入如下語句(以單點觸摸為例)
auto touchListener = EventListenerTouchOneByOne::create(); touchListener->onTouchBegan = CC_CALLBACK_2(MainScene::onTouchBegan, this); touchListener->onTouchMoved = CC_CALLBACK_2(MainScene::onTouchMoved, this); touchListener->onTouchEnded = CC_CALLBACK_2(MainScene::onTouchEnded,this); _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
3、然后將報錯的觸摸響應事件名稱改掉
CCTouchBegan->onTouchBegan
CCTouchMoved->onTouchMoved
CCTouchEnd->onTouchEnded
4、再根據情況修改余下的錯誤
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。