http://blog.linguofeng.com/archive/2012/09/12/cocos2d-x-touch.HTML
提供两种触摸事件处理机制:CCStandardtouchDelegate和CCTargetedtouchDelegate。
一、两种机制的四种不同的事件
CCStandardtouchDelegate默认事件 | |
---|---|
virtual voID cctouchesBegan(CCSet *ptouches,CCEvent *pEvent); | 处理按下事件 |
virtual voID cctouchesMoved(CCSet *ptouches,221)"> 处理按下并移动事件 | |
virtual voID cctouchesEnded(CCSet *ptouches,221)"> 处理松开事件 | |
virtual voID cctouchesCancelled(CCSet *ptouches,221)"> 处理打断事件 |
virtual bool cctouchBegan(CCtouch *ptouch,221)"> 处理用户按下事件,true表示继续处理,否则false. |
virtual voID cctouchmoved(CCtouch *ptouch,232)">virtual voID cctouchended(CCtouch *ptouch,232)">virtual voID cctouchCancelled(CCtouch *ptouch,221)"> 处理打断事件 |
两者的区别:CCSet
与CCtouch
,一个事件集合一个单个事件。
事件分发的顺序:CCTargetedtouchDelegate
→CCStandardtouchDelegate
。
默认情况下所有cclayer
都没有启用触摸事件,需要this->setIstouchEnabled(true);
启用。
如需更改事件:voID registerWithtouchdispatcher(voID) {}
class MyLayer: public cocos2d:cclayer {public virtualvoID registerWithtouchdispatcher(voID); // addStandardDelegate() cctouchesBegan(CCSet*ptouches,CCEventpEvent cctouchesMoved cctouchesEnded cctouchesCancelled// addTargetedDelegate()bool cctouchBeganCCtouchptouch cctouchmoved cctouchended cctouchCancelled}::registerWithtouchdispatcher) // 委托,优先级 CCtouchdispatchershareddispatcher()->addStandardDelegatethis kCcmenutouchPriority// 委托,优先级,是否继续处理addTargetedDelegatetrue// 2.0版本以后CCDirectorsharedDirectorgettouchdispatcher kCcmenuHandlerPriority}二、 如果实现回调函数?
利用cctouchBegan
或cctouchesBegan
加以实现点击的回调
cctouchesBegan// 单点ptouch =CCtouch*)(->anyObject());// 所有点forCCSetIterator itertouch ptouches->begin();!=end itertouch++) pCurtouch *)(*itertouch // 获取点在视图中的坐标(左上角为原点)CCPoint touchLocation ptouchgetLocationInVIEw// 把点的坐标转换成OpenGL坐标(左下角为原点) touchLocation convertToGL(touchLocation// 把OpenGL的坐标转换成cclayer的坐标local convertToNodeSpace// 大小为100x100,坐标为(0,0)的矩形CCRect rect CCRectMake(0 100// 判断该坐标是否在rect矩形内 flag rect.containsPointlocalifflag // 回调else// 不执行}总结
以上是内存溢出为你收集整理的Cocos2d-x之Touch事件处理机制全部内容,希望文章能够帮你解决Cocos2d-x之Touch事件处理机制所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)