如果继承之CCLayer
在OnEnter中添加
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
那么该Layer就会响应
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
最后一个参数false表示触摸事件是否继续向优先级低的中传递,false表示要传递,true表示不传递,0表示触摸优先级。
CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);
表示响应
void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
不论是CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);
还是CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
在OnExit中都需要
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
单点和多点
virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtuavoid ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);
CCMenu的触摸优先级是-128,值越小,触摸优先级越高
本文详细介绍了Cocos2d-x中如何为Layer添加触摸事件监听,包括单点触摸与多点触摸的不同响应方法及实现细节。通过具体代码示例解释了如何使用addTargetedDelegate与addStandardDelegate来分别实现特定的触摸事件处理函数。

1230

被折叠的 条评论
为什么被折叠?



