触摸输入

使用CCLayer响应触摸事件:
开启了层的触摸输入支持后,就可以在层中处理触摸事件了,当引擎接收到触摸事件就会调用下面的方法:
1 virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
2 vritual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
3 virutal void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
4 virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

 

以上四个方法来自于CCStandardTouchDelegate接口,是触摸事件的回调函数。
在实际开发中,通常需要单独建立一个触摸层。
 
 
两种触摸事件:标准触摸事件,带目标的触摸事件
 
标准触摸事件:
任何一个游戏元素都可以接收触摸事件,使一个对象接收标准触摸事件,需要以下步骤;
    需要此对象实现CCStandardTouchDelegate接口;
    使用addStandardDelegate方法把自己注册给触摸事件分发器;
    重载事件回调函数,处理触摸事件;
    当不需要接收触摸事件时,使用removeDelegate方法来注销触摸事件的接受。
 
带目标的触摸事件:
1 virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
2 virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
3 virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
4 virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

 

ccTouchBegan返回一个布尔值,表示声明是否要捕捉这个触摸点,只有在此方法中捕捉到触摸点才会继续引发其他3个事件。
 
带目标触摸事件使用步骤:
实现CCTargetedTouchDelegate接口;
使用addTargetedDelegate方法注册到触摸事件分发器;
重载事件回调函数。注意,我们必须在触摸开始事件中针对需要接受的事件返回true以捕捉事件。
当不需要接收触摸事件时,使用removeDelegate方法来注销触摸事件的接受。

转载于:https://www.cnblogs.com/Blogs-young-chan/p/5223481.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值