const inputManager = _cc.inputManager; let isInit = false; Object.assign(inputManager, { setAccelerometerEnabled (isEnable) { let scheduler = cc.director.getScheduler(); scheduler.enableForTarget(this); if (isEnable) { this._registerAccelerometerEvent(); scheduler.scheduleUpdate(this); } else { this._unregisterAccelerometerEvent(); scheduler.unscheduleUpdate(this); } }, // No need to adapt // setAccelerometerInterval (interval) { }, _registerAccelerometerEvent () { this._accelCurTime = 0; if (!isInit) { isInit = true; let self = this; this._acceleration = new cc.Acceleration(); wx.onAccelerometerChange && wx.onAccelerometerChange(function (res) { let x = res.x; let y = res.y; let systemInfo = wx.getSystemInfoSync(); let windowWidth = systemInfo.windowWidth; let windowHeight = systemInfo.windowHeight; if (windowHeight < windowWidth) { // Landscape orientation // For left landscape // x = y; // y = -x; // For right landscape // x = -y; // y = x; // We suggest to use right landscape by default let tmp = x; x = -y; y = tmp; } self._acceleration.x = x; self._acceleration.y = y; self._acceleration.z = res.z; }); } else { wx.startAccelerometer && wx.startAccelerometer({ fail: function (err) { cc.error('register Accelerometer failed ! err: ' + err); }, success: function () {}, complete: function () {}, }); } }, _unregisterAccelerometerEvent () { this._accelCurTime = 0; wx.stopAccelerometer && wx.stopAccelerometer({ fail: function (err) { cc.error('unregister Accelerometer failed ! err: ' + err); }, success: function () {}, complete: function () {}, }); }, });