COCOS-单点触摸

COCOS-单点触摸,第1张

概述在cocos2dx 2.x版本中,单点触摸的实现是通过重写函数实现的,主要代码如下: // 需要重写的函数,单数形式bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); // 触摸开始,注意返回类型,true表示继续响应CCTouchMove,CCTouchEnd,CCTouchCancalled,false表示不响应void ccTo

在cocos2dx 2.x版本中,单点触摸的实现是通过重写函数实现的,主要代码如下:

// 需要重写的函数,单数形式bool cctouchBegan(CCtouch *ptouch,CCEvent *pEvent);    // 触摸开始,注意返回类型,true表示继续响应CCtouchmove,CCtouchend,CCtouchCancalled,false表示不响应voID cctouchmoved(CCtouch *ptouch,CCEvent *pEvent);    // 触摸滑动                              voID cctouchended(CCtouch *ptouch,CCEvent *pEvent);    // 触摸结束                  voID cctouchCancelled(CCtouch *ptouch,CCEvent *pEvent);// 触摸取消  例如中途来点// 首先需要注册触摸CCDirector::sharedDirector()->gettouchdispatcher()->addTargetedDelegate(this,true);// 最后需要移除触摸CCDirector::sharedDirector()->gettouchdispatcher()->removeDelegate(this);

而在3.x版本中舍弃了这种写法,改用监听回调的方式实现,主要代码如下:
// 需要实现的回调函数,单数形式bool ontouchBegan(touch *touch,Event *unused_event);    // 触摸开始voID ontouchmoved(touch *touch,Event *unused_event);    // 触摸滑动voID ontouchended(touch *touch,Event *unused_event);    // 触摸结束voID ontouchCancelled(touch *touch,Event *unused_event);// 触摸取消// 首先需要开启监听auto dispatcher = Director::getInstance()->getEventdispatcher();auto Listener = EventListenertouchOneByOne::create();Listener->ontouchBegan = CC_CALLBACK_2(GameLayer::ontouchBegan,this);Listener->ontouchmoved = CC_CALLBACK_2(GameLayer::ontouchmoved,this);Listener->ontouchended = CC_CALLBACK_2(GameLayer::ontouchended,this);dispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);// 最后需要移除监听dispatcher->removeEventListener(Listener);// 如果不使用dispatcher,则可以使用_eventdispatcher_eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);_eventdispatcher->removeAllEventListeners();
总结

以上是内存溢出为你收集整理的COCOS-单点触摸全部内容,希望文章能够帮你解决COCOS-单点触摸所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1048612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存