5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬
1
触摸
Coco2dx默认仅仅有CCLayer及其派生类才有触摸的功能。
2
单点触摸
打开触摸开关和触摸方式
setTouchEnabled(true);
setTouchMode(kCCTouchesOneByOne);
Cocos2dx
对触摸分三布来处理。分是是点触。移动。离开。
或是中间被打断。
其功能皆有对应的virtual
函数进行override
的。
|
virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent); |
|
virtual void ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent); |
|
virtual void ccTouchEnded(CCTouch *pTouch,CCEVENT *pEvent); |
|
virtual void ccTouchCancelled(CCTouch *pTouch,CCEvent *pEvent); |
获取点击的坐标点
|
CCPoint pt = pTouch->getLocation(); CCLog(“x=%f y=%f”,pt.x,pt.y); |
理解getDelta();
|
ccTouchBegan start x = 67.309761 y = 180.989975 ccTouchMoved delta x = 1.013191, y = 0.000000 ccTouchMoved delta x = 5.977837, y = 0.000000 ccTouchMoved delta x = 3.985229, y = 0.000000 ccTouchMoved delta x = 1.013184, y = 0.000000 ccTouchMoved delta x = 1.992615, y = 0.000000 ccTouchMoved ................................... ................................... delta x = 1.013184, y = 0.000000 ccTouchMoved delta x = 0.979431, y = 0.000000 ccTouchMoved delta x = 1.992615, y = 0.000000 ccTouchMoved delta x = 3.005798, y = 0.000000 ccTouchMoved delta x = 3.005798, y = 0.000000 ccTouchMoved delta x = 2.972015, y = 0.000000 ccTouchMoved delta x = 1.013214, y = 0.000000 ccTouchMoved delta x = 3.005798, y = 0.000000 ccTouchMoved delta x = 0.979431, y = 0.000000 ccTouchEnded |
3
多点触摸
打开触摸开关,系统默觉得单点触摸。
|
setTouchEnabled(true); |
cocos2dx对触摸分三部来处理。各自是点触,移动。离开。或是中间被打断。
其功能皆有对应的virtual函数进行override的。
|
virtual bool ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent); virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent); virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent); virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent); |
获取点击的坐标点。
4
案例(打飞机)
|
Touch.h |
|
#ifndef #define #include USING_NS_CC; class { public: static CREATE_FUNC(Touch); bool enum { BN747 }; bool void void void }; #endif |
|
Touch.cpp |
|
#include #include CCScene *Touch::scene() { CCScene * Touch * scene->addChild(layer); return } bool { CCLayerColor::initWithColor(ccc4(255, setTouchEnabled(true); setTouchMode(kCCTouchesOneByOne); CCSprite * plane->setPosition(ccp(100, addChild(plane); plane->setTag(BN747); return } bool { CCSprite * CCPoint if (plane->boundingBox().containsPoint(pt)) { CCLOG("touched"); return } //决定消息是否往下传递 return } void { CCSprite * CCPoint if (pt.x && pt.x && pt.y && pt.y { plane->setPosition(pt); } CCLog("ccTouchMoved } void { CCLog("ccTouchEnded"); } void { CCLog("ccTouchCancelled"); } |
|
执行结果: |
5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬的更多相关文章
- 移动端js触摸touch详解(附带案例源码)
移动端触摸滑动原理详解案例,实现过程通过添加DOM标签的触摸事件监听,并计算触摸距离,通过距离坐标计算触摸角度,最后通过触摸角度去判断往哪个方向触摸的. 触摸的事件列表 触摸的4个事件: touchs ...
- 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)
在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔.再加上它出现得比较早,触摸失效问题也变得更加难以解 ...
- 《从零开始学Swift》学习笔记(Day 68)——Cocoa Touch设计模式及应用之响应者链与触摸事件
原创文章,欢迎转载.转载请注明:关东升的博客 应用与用户进行交互,依赖于各种各样的事件.事件响应者对象是可以响应事件并对其进行处理的对象,响应者链是由一系列链接在一起的响应者组成的.响应者链在事件处理 ...
- 手机触摸touch事件
1.Touch事件简介 pc上的web页面鼠 标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如 ipho ...
- 基于appium的模拟单点或多点触屏操作
一.单点触控 TouchAction类:将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接受该链条后,解析各个动作,逐个执行,TouchAction类提供了以下几种方法: 短按:pres ...
- cocos学习
第一章 JavaScript 快速入门 1.1 变量 在 JavaScript 中,我们像这样声明一个变量: var a; 保留字 var 之后紧跟着的,就是一个变量名,接下来我们可以为变量赋值: v ...
- Cocos2d-x 学习笔记(3.3) Layer
1.简介 Layer直接继承了Node.Layer类似Ps里图层的概念,也可以理解成一块透明玻璃.Scene类似Ps里的一张图像,也可以理解成堆放玻璃的箱子. Layer能接收触摸事件.键盘事件.加速 ...
- Android 提供的一系列辅助系统开发工具
除了软件本身的代码之外,Android 还提供了一系列工具来辅助系统开发,这些主要的工具包括: aapt(AndroidAssetPackagingTool):用于建立zip兼容的包(zip.jar. ...
- Cocos2d-x实例:单点触摸事件
addChild(boxC,30, kBoxC_Tag); ...
随机推荐
- oracle 替换其中部分内容
update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;
- ubuntu16.04怎么设置宽带连接
第一步,安装pppoecof 打开终端,输入命令sudo apt-get install pppoeconf 安装成功之后,开始手动配置. 第二步,配置连接 打开终端,输入命令pppoeconf 接下 ...
- [Luogu P4198]楼房重建(线段树)
题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个 ...
- AOJ 2266 Cache Strategy(费用流)
[题目链接] http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2266 [题目大意] 有M个桶,N个球,球编号为1到N,每个球都有重量 ...
- 【树上莫队】【带修莫队】bzoj3052 [wc2013]糖果公园
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using ...
- 使用eclipse调试MR程序
1)点击菜单中的“运行按钮”,然后选择调试配置 2) 3) 这里配置输入路径和输出路径,注意在eclipse上只是在单机模式下Hadoop不会使用HDFS,也不会开启任何Hadoop守护进程,所有程序 ...
- Mysql 按条件排序查询一条记录 top 1 对应Mysql的LIMIT 关键字
项目中需要每次查询一个表中的最新的一条记录,表结构里面有日期字段.只需要显示一条记录. Mysql帮助文档里面的解释 3.6.2. 拥有某个列的最大值的行 任务:找出最贵物品的编号.销售商和价格. 这 ...
- Nginx用为缓存服务器
Nginx 缓存组成 共享内存 数据定位 存储键和缓存对象的元数据 磁盘空间: 存储数据 nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从 ...
- 【jQuery】jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read property 'nodeType' of undefined
jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read p ...
- 大数据的开始:安装hadoop
为实现全栈,从今天开始研究Hadoop,个人体会是成为某方面的专家需要从三个方面着手 系统化的知识(需要看书或者比较系统的培训) 碎片化的知识(需要根据关注点具体的深入的了解) 经验的积累(需要遇到问 ...