【2014-01-20】cocos2dx学习笔记:吞噬事件相应
📅 2026/7/16 5:46:34
👁️ 阅读次数
📝 编程学习
[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2014-01-20| 标题:cocos2dx学习笔记:吞噬事件相应|分类:编程 / C && C++ / cocos2dx |标签:cocos2dx·事件响应
cocos2dx学习笔记:吞噬事件相应
- 上层Layer捕获所有的相应,防止底层接收
- 备注:
- .h文件:
- .cpp文件:
最近项目中用到了cocos2dx来开发一个基于陀螺仪的demo,忙了半个星期,一边学习一边开发,总算搞了出来。这里备份下开发中学习到的一些cocos2dx知识。
上层Layer捕获所有的相应,防止底层接收
我们在做开发的时候,往往有N层layer,有的layer里面有menu,就会被误响应,这里备份一份简单的解决办法。
备注:
解决办法是参考网上的一些教程,根据menu的响应优先级为-128来屏蔽的。作者开发时比较赶项目,没有仔细的学习cocos2dx源码,后续需要仔细学习下cocos2dx的事件分发机制。
.h文件:
classShowLogoLayer:publiccocos2d::CCLayer{public:CREATE_FUNC(ShowLogoLayer);virtualboolinit();voidfinishMe();virtualboolccTouchBegan(cocos2d::CCTouch*pTouch,cocos2d::CCEvent*pEvent);virtualvoidccTouchMoved(cocos2d::CCTouch*pTouch,cocos2d::CCEvent*pEvent);virtualvoidccTouchEnded(cocos2d::CCTouch*pTouch,cocos2d::CCEvent*pEvent);virtualvoidccTouchCancelled(cocos2d::CCTouch*pTouch,cocos2d::CCEvent*pEvent);};.cpp文件:
voidShowLogoLayer::finishMe(){CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);this->removeFromParent();}boolShowLogoLayer::init(){if(!CCLayer::init()){returnfalse;}//。。。//。。。CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-128-1,true);returntrue;}boolShowLogoLayer::ccTouchBegan(CCTouch*pTouch,CCEvent*pEvent){finishMe();returntrue;}voidShowLogoLayer::ccTouchMoved(CCTouch*pTouch,CCEvent*pEvent){//do nth}voidShowLogoLayer::ccTouchEnded(CCTouch*pTouch,CCEvent*pEvent){//do nth}voidShowLogoLayer::ccTouchCancelled(CCTouch*pTouch,CCEvent*pEvent){//do nth}
编程学习
技术分享
实战经验