cocos2d-x总结 场景中的层(CCLayer)及其触摸消息响应
2012-08-08 13:35
381 查看
cocos2d-x总结 场景中的层(CCLayer)及其触摸消息响应
【原文地址】http://www.cnblogs.com/w121640121/archive/2011/12/06/2278651.html
单点触控:Targeted Touch Delegate方式
一个层接收触摸消息需要如下步骤:
1,在初始化阶段将此层的属性设置为接收触摸消息。例如在init()函数中添加:
m_bIsTouchEnabled = true; 或 setIsTouchEnabled(true);
2,重载函数virtual void registerWithTouchDispatcher(void);
因为默认的方式为Standard Touch Delegate,因此需要重新注册,在函数中添加以下语句
?
其中第二个参数为优先级,优先级数值越低,越先响应(未测试)
3,重载触摸响应函数
接收触摸消息需要重载以下函数
?
这里需要注意的事第一个函数是必须实现的,否则点击会抛出异常
多点触控:Standard Touch Delegate方式(CCLayer默认采纳这种方式)
支持这种方式同样需要三个步骤:
1,同Targeted Touch Delegate方式第一步
2,将此节点添加到StandardDelegate(对于CCLayer可以省略此步),以实现一个可以点击的CCSprite为例:
在onEnter函数中添加
?
3,重载响应函数
?
其中 pTouches为一个CCTouch的集合,可以通过以下方法来获取单一触点
?
获取全部触点需要遍历这个集合
?
4,从StandardDelegate移除:
如果第二步将自定义的CCSprite加入到StandardDelegate,那么在此CCSprite被清除时,移除此CCSprite。在onExit函数中调用
?
获取触点位置
从CCTouch中可以获取到触点的位置主要有以下几种方式
1:获取UIView坐标
?
这里获取的是设备的UIView坐标,原点在左上角,X向右侧递增,Y向下递增。
2:获取节点坐标
?
节点坐标的计算同GL坐标,它以所在节点的左下角为原点,X向右递增,Y向上递增
3,获取锚点坐标
一个节点,所有的变换都是基于锚点,比如平移,旋转,缩放等。可以通过函数setAnchorPoint(CCPoint var);来改变锚点。cocos2d-x里节点默认的锚点是中心点,即等同于setArchorPoint(ccp(0.5, 0.5));其中(0,0)代表左下角,(1,1)代表右上角。
?
这时,坐标系的原点在该节点的锚点位置。X向右递增,向左递减;Y向上递增,向下递减
【原文地址】http://www.cnblogs.com/w121640121/archive/2011/12/06/2278651.html
单点触控:Targeted Touch Delegate方式
一个层接收触摸消息需要如下步骤:
1,在初始化阶段将此层的属性设置为接收触摸消息。例如在init()函数中添加:
m_bIsTouchEnabled = true; 或 setIsTouchEnabled(true);
2,重载函数virtual void registerWithTouchDispatcher(void);
因为默认的方式为Standard Touch Delegate,因此需要重新注册,在函数中添加以下语句
?
3,重载触摸响应函数
接收触摸消息需要重载以下函数
?
多点触控:Standard Touch Delegate方式(CCLayer默认采纳这种方式)
支持这种方式同样需要三个步骤:
1,同Targeted Touch Delegate方式第一步
2,将此节点添加到StandardDelegate(对于CCLayer可以省略此步),以实现一个可以点击的CCSprite为例:
在onEnter函数中添加
?
?
?
?
如果第二步将自定义的CCSprite加入到StandardDelegate,那么在此CCSprite被清除时,移除此CCSprite。在onExit函数中调用
?
从CCTouch中可以获取到触点的位置主要有以下几种方式
1:获取UIView坐标
?
2:获取节点坐标
?
3,获取锚点坐标
一个节点,所有的变换都是基于锚点,比如平移,旋转,缩放等。可以通过函数setAnchorPoint(CCPoint var);来改变锚点。cocos2d-x里节点默认的锚点是中心点,即等同于setArchorPoint(ccp(0.5, 0.5));其中(0,0)代表左下角,(1,1)代表右上角。
?
相关文章推荐
- cocos2d-x总结(三)场景中的层(CCLayer)及其触摸消息响应
- cocos2d-x总结(三)场景中的层(CCLayer)及其触摸消息响应
- cocos2d-x场景中的层(CCLayer)及其触摸消息响应
- cocos2d-x场景中的层(CCLayer)及其触摸消息响应(转)
- cocos2d-x 1场景中的层(CCLayer)及其触摸消息响应
- cocos2d-x场景中的层(CCLayer)及其触摸消息响应
- cocos2d-x中 场景中的层触摸消息应用
- Cocos2d-x ccSprite的触摸消息响应 - ccsx教程
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
- 游戏开发随手记:cocos2d ccLayer响应触摸事件方法
- cocos2d-x总结(四)win32环境下响应键盘消息
- cocos2d-x 植物大战僵尸(6) 触摸植物卡的消息响应
- cocos2d-x总结(四)win32环境下响应键盘消息
- cocos2d-x学习之层的触摸消息响应
- cocos2d-x总结(四)win32环境下响应键盘消息
- cocos2d ccLayer响应触摸事件方法
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
- cocos2d-x 触摸消息响应
- cocos2d-x学习之层的触摸消息响应