您的位置:首页 > 移动开发 > Cocos引擎

[ IOS-Cocos2d-x 游戏开发之一] -cocos2d-x触摸事件优先级的探究与实践

2013-01-29 16:11 791 查看
cocos2d-x触摸事件优先级的探究与实践

[版本:2.0]

CCTouchDispatcher是管理cocos2d-x中所有Touch事件派发的类,
CCTouchDispatcher中包含了两个CCTouchHandler的列表,
分别存储StandardTouchHandler和 TargetedTouchHandler。

    // default implements are used to call script callback if exist (单点)
   
virtual bool ccTouchBegan(CCTouch *pTouch,
CCEvent *pEvent);
   
virtual void ccTouchMoved(CCTouch *pTouch,
CCEvent *pEvent);
   
virtual void ccTouchEnded(CCTouch *pTouch,
CCEvent *pEvent);
   
virtual void ccTouchCancelled(CCTouch *pTouch,
CCEvent *pEvent);

    // default implements are used to call script callback if exist  (多点)
   
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);

单点:吞噬   击穿
void
CCTouchDispatcher::addTargetedDelegate(CCTouchDelegate *pDelegate,
int nPriority, bool bSwallowsTouches)
nPriority = 吞噬优先级(例:CCMenu权限为 -128  越小越权限高)

bSwallowsTouches = 击穿 (例:俩个layer时,bSwallowsTouches = true击穿,表示可以同时响应这俩个layer的ccTouchBegan)

关于ccTouchBegan的返回值
true:本层的后续Touch事件可以被触发,并阻挡向后层传递
false:本层的后续Touch事件不能被触发,并向后传递

多点:优先级

1:addChild(CCNode *child,
int zOrder)  以  zOrder 做标准

2:同等zOrder下 ,以添加前后顺序,越后越高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ANDROID Cocos2d IOS
相关文章推荐