cocos2d CCTouchDispatcher 触摸分发

本文介绍Cocos2d-x中两种触摸事件分发方式:标准型和目标型。重点讲解CCTargetedTouchDelegate如何通过设置bSwallowsTouches及ccTouchBegan返回值来控制触摸事件的吞噬,提高触摸事件处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.有两种触摸分发,标准型和目标型,分别为:CCStandardTouchDelegate和CCTargetedTouchDelegate的分发;

2.CCTargetedTouchDelegate可以吞噬触摸,就只会响应一个触摸,减少了分发的时间,处理触摸效率好点;但是是否吞噬成功有两个条件:

   2.1 触摸代理触摸时,需要设置为bSwallowsTouches = true;

   2.2 在ccTouchBegan返回true;

    实现了CCTargetedTouchDelegate的类,只要在ccTouchBegan返回了true,不管是设置吞噬为true,起都可以响应后面的ccTouchMove等触摸事件;

    如果在ccTouchBegan返回了false,表明此类后续不处理次触摸,除了ccTouchBegan;

3.CCStandardTouchDelegate不能吞噬触摸。并且会在CCTargetedTouchDelegate后面接收触摸事件。

4.CCTouchDispatcher分发触摸事件,不分层(z)的高低,只分权限(nPriority)的高低。并且相同权限的触摸代理,接受触摸的先后顺序不一定,但能保证都能接收到触摸。

总结:

 1.对于单个类的触摸处理,优先使用CCTargetedTouchDelegate。如果发现是触摸到本类范围内,则返回true,吞噬触摸;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值