Cocos Creator学习五:触摸和重力传感响应事件
1.移动设备上主要涉及触摸响应事件以及重力传感响应事件的处理。
事件主要分两类:
针对节点事件处理的节点响应事件cc.Node.EventType(主要是触摸响应事件和鼠标响应事件);
针对全局系统事件处理的全局事件cc.SystemEvent.EventType(主要是重力传感响应事件以及键盘响应事件)。
2.触摸响应事件
①包括四个响应事件:
②响应函数参数event重要属性
event.currentTouch._startPoint:开始触摸时坐标位置。
event.currentTouch._point:当前坐标位置。
③例子代码
onLoad() {
//开启各种响应事件
this.node.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this);
this.node.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this);
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchCancel, this);
}, onDestroy() {
//关闭响应事件
this.node.off(cc.Node.EventType.TOUCH_START, onTouchStart, this);
this.node.off(cc.Node.EventType.TOUCH_END, onTouchEnd, this);
this.node.off(cc.Node.EventType.TOUCH_MOVE, onTouchMove, this);
this.node.off(cc.Node.EventType.TOUCH_CANCEL, onTouchCancel, this);
}, //节点区域内触摸开始事件
onTouchStart: function (event) {
cc.log("event name:", event.type, "start point:", event.currentTouch._startPoint, " current point:", event.currentTouch._point);
}, //节点区域内/外触摸移动事件
onTouchMove: function (event) {
cc.log("event name:", event.type, "start point:", event.currentTouch._startPoint, " current point:", event.currentTouch._point);
}, //节点区域内触摸结束事件
onTouchEnd: function (event) {
cc.log("event name:", event.type, "start point:", event.currentTouch._startPoint, " current point:", event.currentTouch._point);
}, //节点区域外触摸结束事件
onTouchCancel: function (event) {
cc.log("event name:", event.type, "start point:", event.currentTouch._startPoint, " current: point", event.currentTouch._point);
}
3.重力传感响应事件
①包括一个响应事件
②开启传感函数
cc.systemEvent.setAccelerometerEnabled(true); //设置是否开启重力传感
③例子代码
onLoad() {
cc.systemEvent.setAccelerometerEnabled(true); //设置是否开启重力传感
cc.systemEvent.on(cc.SystemEvent.EventType.DEVICEMOTION, this.onDeviceMotionEvent, this); //注册重力传感响应事件 }, onDestroy() {
cc.systemEvent.off(cc.SystemEvent.EventType.DEVICEMOTION, this.onDeviceMotionEvent, this); //取消重力传感响应事件
}, //x,y,z方向的重力感应加速度
onDeviceMotionEvent(event) {
cc.log("event name:", event.type, " acc x:", event.acc.x, " acc y:", event.acc.y, " acc z:", event.acc.z); //单位是g=9.8m/s^2
}
PS:
1.测试环境v2.0.5+win10
2.测试代码下载地址:https://files-cdn.cnblogs.com/files/chevin/CocosCreatorBlog05.zip
以上。
Cocos Creator学习五:触摸和重力传感响应事件的更多相关文章
- Cocos Creator学习一:学习目录以及v2.0 必须关注的网址
学习目录: <Cocos Creator学习二:查找节点和查找组件> <Cocos Creator学习三:生命周期回调函数> <Cocos Creator学习四:按钮响应 ...
- Cocos Creator学习六:加载/释放图片资源
1.目的:学习加载图片资源.使用图片资源创建对象以及释放图片资源. 2.注意事项以及主要函数: ①注意事项:使用loadRes函数,资源必须放置在assets下的resources文件夹下(默认没有r ...
- Cocos Creator学习三:生命周期回调函数
1.目的:学习生命周期回调函数以及回调顺序,更有利于我们逻辑的处理把控. 2.生命周期回调函数: 节点:指cc.Node:组件:指cc.Component. ①onLoad:脚本组件绑定的节点所在场景 ...
- Cocos Creator学习二:查找节点和查找组件
1.目的:只有通过方便的获取节点对象以及组件,才能较好的进行逻辑控制. 2.通过 cc.find(节点全路径名称字符串) 获取节点. 3.通过getComponent获取组件(注意一个是类型,一个是类 ...
- Cocos Creator学习四:按钮响应事件
1.方法一:通过编辑器对cc.Button的属性进行拖放操作进行控制 (1)创建脚本BtnClick1.js,增加btnClick1函数,然后拖放到Canvas节点中(记得拖放,否则下面步骤将找不到对 ...
- Cocos Creator学习目录
目录 安装和启动 文件结构 编辑器基础 基本概念 (场景树 节点 坐标 组件 ) Cocos Creator 脚本简介 Cocos Creator调试 节点 cc.Node 组件开发cc.Compon ...
- cocos creator学习
2019-05-30 22:23:27 按照前一节我发的教程做,大概了解了Cocos creator的基本布局 但是你发现你不好写代码(感觉视频没有提) 需要下载VS code软件,在其上进行编辑,教 ...
- Cocos Creator学习笔记
1.动态加载图片 cc.Class({ extends: cc.Component, properties: { label: { default: null, type: cc.Label }, l ...
- Cocos Creator EditBox(编辑框/输入框)添加事件的两种方法
EditBox添加事件方法一这种方法添加的事件回调和使用编辑器添加的事件回调是一样的,通过代码添加, 你需要首先构造一个 cc.Component.EventHandler 对象,然后设置好对应的 t ...
随机推荐
- Qt QSpinBox 和 QDoubleSpinBox
展示一个效果: QDoubleSpinBox跟QSpinBox类似,只是多了一个decimal.
- Python 冒泡排序、归并排序、快速排序
冒泡排序 原理: 代码: def bubble_sort2(arr):for j in range(len(arr) - 1, 0, -1): # [n-1, n-2, ....2, 1]for i ...
- 棋盘游戏,dfs搜索
问题描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆 ...
- cnpm安装失败
解决办法: 先:npm config set registry "http://registry.npmjs.org/" 再:npm install -g cnpm
- Cannot locate BeanDefinitionParser for element [scoped-proxy]
指定使用 CGLIB 而不使用 JDK 生成代理对象:注意:此两个标签必须同时出现,不然会报:Cannot locate BeanDefinitionParser for element [scope ...
- javascript 的线程问题
JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如 setTimeout( ...
- 1.5:Unity Render Pipeline
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 这一节主要是为上一节中没有提到的一些概念作补充. 上一节提到了Unity中 ...
- 集束搜索beam search和贪心搜索greedy search
贪心搜索(greedy search) 贪心搜索最为简单,直接选择每个输出的最大概率,直到出现终结符或最大句子长度. 集束搜索(beam search) 集束搜索可以认为是维特比算法的贪心形式,在维特 ...
- linux常用英文单词记录
1.skip 跳过忽略 2.next 下一步3.hostname 主机名4.password 密码5.complete 完成6.network 网络7.conf config configuratio ...
- Exp1 PC平台逆向破解 20164303 景圣
逆向及Bof基础实验 实验对象 文件名为pwn1的linux可执行文件. 实验目标:程序正常执行流程weimain调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段 ...