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學習目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM