Doc:

If isTouchEnabled, this method is called onEnter.

Override it to change the way CCLayer receives touch events.

Default: CCTouchDispatcher::sharedDispatcher()->addStandardDelegate(this,0);

Example: void CCLayer::registerWithTouchDispatcher()

{

CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,INT_MIN+1,true);

}

当我们使用this->setTouchEnabled(true);方法开启触摸事件时,默认开启的是多点触摸,而我们有时只需要单点触摸就够了。实现方法如下:

代码例子:
void HelloWorld::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}

在registerWithTouchDispatcher()函数中注册的好处是:当CCLayer或CCLayer的派生类加载时就会调用registerWithTouchDispatcher()函数 而当前CCLayer被移除时也会对注册的touch事件进行注销。

 
 

TargetedTouchDelegate.

使用这种类型的delegate的好处:

1.你不需要再处理NSSets了,CCTouchDispatcher 为了做了分离工作。每次调用的时候,你都会得到一个唯一的UITouch。 这里我们将要覆盖 “ccTouchBegan” 和“ccTouchEnded” --第一个方法当第一个touch事件开始的时候被调用,另外一个是touch结束的时候被调用。

值得注意的是,一定要重写ccTouchBegan函数让其返回true。不然就会出错,因

为系统不会给你默认返回真。

bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
return true;
}

ccTouchEnded函数:

void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{ }

最新文章

  1. marked.js简易手册
  2. 【HTML5&CSS3进阶学习01】气泡组件的实现
  3. 【读书笔记】iOS网络-解析响应负载
  4. 纪念逝去的岁月——C/C++字符串回文
  5. java eclipse中的代码联动提示功能
  6. c#简易反射调用泛型方法
  7. 项目文件包含 ToolsVersion="12.0" 设置,但此工具集未知或缺失。
  8. Tengine vs openresty
  9. winfrom之动态控件生成以及保存动态空间的数据
  10. 读loadBalance技术的一些笔记
  11. Listview异步加载之优化篇
  12. golang Rsa
  13. URL匹配与req参数解析
  14. C++虚表(V-Table)解析
  15. Python学习摘要201802
  16. MySQL存储过程 CASE语句
  17. Javascript高级编程学习笔记(31)—— BOM(5)screen、history对象
  18. 服务器端使用jstat定位GC问题的有关命令
  19. 剑指Offer-- 二叉搜索树中和为某一值的路径
  20. IOS绘图的核心步骤

热门文章

  1. 树莓派静态IP配置
  2. Mysql 性能优化20个原则(2)
  3. flask可以通过缓存模板或者页面达到性能提升
  4. android studio 使用(一)
  5. Python奇技
  6. CF 558B(Amr and The Large Array-计数)
  7. SolidEdge 如何绘制辅助视图
  8. font-family,font-size,color
  9. java开始到熟悉61
  10. wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单