溫馨提示×

溫馨提示×

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

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

cocos2d-x學習筆記(三)解決cocos2d::Director沒有成員getTouchDispatcher問題

發(fā)布時間:2020-06-25 23:52:06 來源:網(wǎng)絡 閱讀:2701 作者:wty530 欄目:游戲開發(fā)

初學者在學習代碼階段偶爾會把項目代碼拿過來編譯,然后看下運行結果再研究代碼。如果別人的項目代碼是用cocos2d-x 3.0之前的版本編寫的,而自己用的cocos2d-x是3.0以后的,編譯的時候經(jīng)常會碰到如下問題:

Error:class "cocos2d::Director"沒有成員"getTouchDispatcher"

cocos2d-x學習筆記(三)解決cocos2d::Director沒有成員getTouchDispatcher問題

在3.0版本以前,之前所用的 CCTouchBegan、CCTouchMoved、CCTouchEnd這些都已經(jīng)不能再用了,現(xiàn)在是讓監(jiān)聽器自己綁定函數(shù)。

解決辦法如下:

1、將該報錯語句注釋掉

//pDirector->getTouchDispatcher()->addTargetedDelegate(this,0, true);

2、在需要觸摸響應界面的初始函數(shù)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、再根據(jù)情況修改余下的錯誤

向AI問一下細節(jié)

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

AI