Cocos Creator學習五:觸控和重力感測響應事件 Cocos Creator學習目錄
阿新 • • 發佈:2018-12-17
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
以上。