Cocos2d-x 單點觸摸
首先,要在.h文件中注冊觸摸事件的回調方法:
bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent); void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent); void ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
.cpp文件實現如下:
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } //在實現單點觸摸之前,需要為我們的觸摸事件進行注冊: //這里的三個參數,第一個:是哪個對象進行觸摸注冊,第二個:觸摸優先級 第三個是否吞噬掉本次觸摸事件 CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true); //所謂觸摸事件的優先級,就是如果我們在一個場景中注冊了多個觸摸事件,誰會先接受到這次觸摸事件,優先級數值越小,優先級越高,也就會優先得到這次觸摸事件,它可以選擇是否處理這次觸摸,以及是否將這次觸摸傳遞下去.值得一提的是,CCMenu的優先級是-128。 //所謂吞噬事件,就是說如果我們選擇true,并且處理這個事件,那么觸摸事件就不會發送給其他代理。 return true; }
//開始觸摸的回調方法 bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) { //獲取openGL坐標 CCPoint openglPoint = pTouch->getLocation(); CCLog("openGL = %f,%f",openglPoint.x,openglPoint.y); //獲取屏幕坐標,原點在左上角 CCPoint screenPoint = pTouch->getLocationInView(); CCLog("屏幕坐標 = %f,%f",screenPoint.x,screenPoint.y); return true; }
//觸摸移動時的回調方法 void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) { //獲得前一個點的坐標 CCPoint startPoint = pTouch->getPreviousLocation(); //獲得當前點的坐標 是按屏幕的坐標獲取的就是說以左上角為原點。 CCPoint endPoint = pTouch->getLocation(); CCLog("startPointX = %f,startPointY = %f",startPoint.x,startPoint.y); CCLog("endPointX = %f,endPointY = %f",endPoint.x,endPoint.y); }
//觸摸結束時的回調方法 void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) { }
代碼下載 http://pan.baidu.com/share/link?shareid=2820307714&uk=3189484501
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:Cocos2d-x單點觸摸-創新互聯
URL地址:http://vcdvsql.cn/article10/ddjedo.html
成都網站建設公司_創新互聯,為您提供做網站、服務器托管、網站內鏈、電子商務、企業建站、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯