cocos2d-x 多点触控总结
【一】:这个和单点有啥区别
1.使用上的区别。
这个不用多说,有些情况下我们是需要多点触控来实现更好的效果,比如,切水果。
2.和单点的区别
[1].单点使用监听类是CCtargetedTouchDelegate,而多点使用CCtangardTouchDelegate.
[2].多点触控还需要多一个步骤就是注册多点触控。这里你可能会问,为啥单点触控都放在onEnter生命周期函数里,多点干嘛要单独写个。这里是因为,如果你放在onEnter里,可能会崩溃哦。
[3].另外多点触控要有开启才能用,就是开启多点触控函数setTouchEnabled.
[4].多点触控中的ccTouchesBegan不是布尔型哦。
【二】:函数
触屏事件:
1.注册多点触控
virtual void registerWithTouchDispatcher(void);
2.当用户第一次触碰手机屏幕时响应的回调函数
virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
3.当用户手指在手机屏幕上滑动时响应的回调函数
virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
4.当用户手指在离开手机屏幕上时响应的回调函数
virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
这里不再使用参数CCTouch,而是他们的集合。
CCtouch
1.getID()//得到当前触点的下标(0开始)
【三】:示例
如果是ios平台,要在 AppController.mm 中加入
//开启多点触控.. 默认是关闭的。
[__glView setMultipleTouchEnabled:YES];
如果是android就不用,因为默认是开启的...
因为这个问题曾经浪费了我大把时间。 mark!
Touchsdemo.h
//写上多点触控的回调函数
virtual void registerWithTouchDispatcher(void);
virtual void ccTouchesBegan(CCSet * set,CCEvent * e);
virtual void ccTouchesMoved(CCSet * set,CCEvent * e);
virtual void ccTouchesEnded(CCSet * set,CCEvent * e);
Touchsdemo.cpp
//开启多点
this->setTouchEnabled(true);
2.注册监听
void Touchsdemo::registerWithTouchDispatcher(void){
//注册监听
CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);
}
3.实现接触屏幕事件
void Touchsdemo::ccTouchesBegan(CCSet * set,CCEvent * e)
{
CCSetIterator iter=set->begin();
//这里的iter相当于系统分配的数字,
//set->begin()获取第一个数字
//set->end()就是最后一位
for(;iter!=set->end();iter++){
//这里呢,就是单点处理了,可以理解为把多点拆成单点来做
CCTouch * mytouch=(CCTouch *)(* iter);
CCPoint cp=mytouch->getLocation();
//对每个触碰点做相应处理
}
}
学习的路上,与君共勉。
cocos2d-x 多点触控总结相关推荐
- android怎么监听多点触摸_什么是多点触控技术,有哪些用途
自从乔布斯将触控技术用于苹果手机上,很多的手机厂商纷纷效仿,触控技术几乎成为手机的"标配".其实,触控技术早就存在,只是一直未能大面积用于各种设备中,本文将带您认识神奇的触控技术. ...
- Android 多点触控 MotionEvent详解
相关API 介绍 MotionEvent.getY() 和 MotionEvent.getRawY() 的区别 getY 表示触摸事件在当前的View内的Y 坐标, getRawY表示触摸事件在整个屏 ...
- 【Android 应用开发】多点触控 ( 多点触控事件 | PointerId | PointerIndex | 坐标获取 | 触摸点个数 )
文章目录 I . 多点触控事件 II . PointerId 与 PointerIndex 简介 III . 本次 PointerId 与 PointerIndex 获取 IV . PointerId ...
- Windows Phone 7范例游戏Platformer实战5——多点触控编程
即使是再有经验的XNA程序员,在开始Windows Phone 7上的游戏开发时也不得不学习下多点触控这个新的实现方法.虽然目前有些Windows Phone 7手机附带了键盘,但是为了对所有WP7手 ...
- android 关闭多点触控_Cocos Creator关闭多点触摸的问题
一. 方案一:改写Node的派发事件 方法:改写node的派发事件,当有多个响应的时候不去进行dispatch. 在游戏开启的时候把node原来的方法: cc.Node.prototype.dispa ...
- Android多点触控MultiTouch浅析
申明: 参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0226/914.html 下面实现如何通过应用层支持多点触控操作, ...
- Android开发实例之多点触控程序
智能终端设备的多点触控操作为我们带来了种种炫酷体验,这也使得很多Android开发者都对多点触控程序的开发感兴趣.实际上多点触控程序的实现并不是那么遥不可及,而是比较容易.本文就主要通过一个实例具体讲 ...
- android 多点触控缩放,Android多点触控(图片的缩放Demo)
本文主要介绍Android的多点触控,使用了一个图片缩放的实例,来更好的说明其原理.需要实现OnTouchListener接口,重写其中的onTouch方法. 实现效果图: 源代码: 布局文件: ac ...
- 89600 matlab,是德KEYSIGHT N9000B CXA 信号分析仪,多点触控,9 kHz 至 26.5 GHz
是德KEYSIGHT N9000B CXA 信号分析仪,多点触控,9 kHz 至 26.5 GHz 产品名称:CXA 信号分析仪,多点触控,9 kHz 至 26.5 GHz 产品型号:N9000B 厂 ...
- 关于android多点触控
最近项目需要一个多点触控缩放的功能.然后上网查了下资料 总结一下: 首先android sdk版本很重要,比如你在AndroidManifest.xml中指定android:minSdkVersion ...
最新文章
- MySQL面试重点篇27问27答
- 从微盟36小时故障,谈谈数据安全这点事
- c++输出方块_C/C++编程笔记:DFS 深度优先搜索的基本思想,含实例讲解
- 判断均匀平面波的极化形式_化学选修3丨分子极性如何判断?四步就能搞定!...
- 框架:Mybatis中使用sql几种特殊情况
- iis php cgi.exe 漏洞,IIS4\IIS5 CGI环境块伪造0day漏洞
- 使用nginx动静分离后,druid被拦截的解决方法
- vs2003打开项目错误
- Vue 给第三方组件加入自定义参数
- 信息林-青岛分类信息网.net源码
- FFT【快速傅里叶变换】FWT【快速沃尔什变换】
- 标签系统 -- 用户画像
- python做bi系统_如何用开源bi,打造自己的轻量级bi系统
- 升级Ubuntu造成RTL8125网卡驱动丢失
- python采集原神高清pv图和语音
- IDEA快捷方式改成eclipse的
- 根据经度纬度 筛选距离远近
- 4款暗藏惊喜的Windows软件,硬核又实用,满足你工作中各种需求
- 贝塞尔曲线-曲线拟合
- 3 分钟搞瘫阿里内网,他是唯一能让马云睡安稳的男人!
热门文章
- Sentiment Polarity Detection for Software Development
- 2015年可视化研究前沿动态
- RGB 转换为灰度图、二值化图
- Android 获取手机中的图片信息的两种方法
- 手动配置协议和服务器POP,企业邮箱如何设置POP/SMTP等服务-上海腾曦网络[foxmail]...
- 洛谷P1008 [NOIP1998 普及组] 三连击题解
- 关于个人对培训的看法
- 小白的测试人生(三)小白如何进入IT行业及如何选择培训机构
- Springboot汽车配件销售管理系统毕业设计源码131650
- 2022头像小程序源码+支持姓氏头像生成