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学习目录

转载于:https://www.cnblogs.com/chevin/p/10132990.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值