difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
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 () {},
        });
    },
});