文章目录
  1. 1. 标准触摸事件
  2. 2. 带目标的接触事件
  3. 3. CCTouchDispatcher触摸分发器
  4. 4. 加速度计
  5. 5. 文字输入

为了处理屏幕输入事件,最简单的解决方案是利用CCLayer开启内建的触摸输入支持,通过TouchEnable属性来开启和关闭接受触摸输入。

触摸事件有两种:

标准触摸事件

任何层都会平等地接收全部触摸事件。

virtualvoid ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
virtualvoid ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
virtualvoid ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
virtualvoid ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

带目标的接触事件

接收者并不平等,较早处理事件的接收者有权停止事件的分发,使它不再继续传递给其他接收者。

virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);
virtual void ccTouchCancelled(CCTouch* touch, CCEvent* event);

CCTouchDispatcher触摸分发器

单例类!
实现触摸事件分发,它封装了下面这两个函数,可以把CCStandardTouchDelegate和CCTargetedTouchDelegate添加到分发列表中:

void addStandardDelegate(CCTouchDelegate *pDelegate, intnPriority);
void addTargetedDelegate(CCTouchDelegate *pDelegate, intnPriority, boolbSwallowsTouches);

加速度计

和触摸事件事件一样 重力感应的处理先被引擎抽象为一个触摸代理的协议 然后由CCLayer提供了一个接口 在实际开发中 只需要重载加速度计事件即可

virtual void didAccelerate(CCAcceleration* pAccelerationValue);

CCAcceleration是一个结构体 包含加速度计获得的三个方向的加速度

typedef struct  
{  
double x;  
double y;  
double z;  
double timestamp;  
}CCAcceleration;  

文字输入

CCTextField

文章目录
  1. 1. 标准触摸事件
  2. 2. 带目标的接触事件
  3. 3. CCTouchDispatcher触摸分发器
  4. 4. 加速度计
  5. 5. 文字输入