Cocos2d-x 多點觸摸

來源:互聯網
上載者:User

多點觸摸的實現步驟與單點觸摸類似,setTouchEnabled(true)開啟觸摸功能,註冊觸摸事件,重載多點觸摸函數:ccTouchesBegan(開始)、ccTouchesMoved(移動)、ccTouchesEnded(結束)、ccTouchesCancelled(系統中斷取消觸摸事件),每個多點觸摸函數都可以通過遍曆整個CCSet來獲得所有的觸點。

 

程式碼:

標頭檔加入觸摸重載函數:

              virtual void registerWithTouchDispatcher(void);virtual void ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);virtual void ccTouchesMoved(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);virtual void ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);virtual void ccTouchesCancelled(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);

 

cpp檔案加入:

setTouchEnabled(true);

 

定義實現這些函數:

void HelloWorld::registerWithTouchDispatcher(){CCDirector *pdir = CCDirector::sharedDirector();pdir->getTouchDispatcher()->addStandardDelegate(this, 0);}void HelloWorld::ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent){CCSetIterator iter = pTouches->begin();for (; iter != pTouches->end(); iter++){CCTouch* pTouch = (CCTouch*)(*iter);CCPoint location = pTouch->getLocation();CCLOG("ccTouchesBegan x: %f, y: %f", location.x, location.y);}}void HelloWorld::ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent){CCSetIterator iter = pTouches->begin();for (; iter != pTouches->end(); iter++){CCTouch* pTouch = (CCTouch*)(*iter);CCPoint location = pTouch->getLocation();CCLOG("ccTouchesEnded x: %f, y: %f", location.x, location.y);}}void HelloWorld::ccTouchesMoved(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent){CCSetIterator iter = pTouches->begin();for (; iter != pTouches->end(); iter++){CCTouch* pTouch = (CCTouch*)(*iter);CCPoint location = pTouch->getLocation();CCLOG("ccTouchesMoved x: %f, y: %f", location.x, location.y);}}void HelloWorld::ccTouchesCancelled(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent){CCSetIterator iter = pTouches->begin();for (; iter != pTouches->end(); iter++){CCTouch* pTouch = (CCTouch*)(*iter);CCPoint location = pTouch->getLocation();CCLOG("x: %f, y: %f", location.x, location.y);}}





 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.