const app = getApp()
const ctx = wx.createCanvasContext('canvas1')
const ww = app.globalData.ww
const hh = app.globalData.hh
Page({
data: {
ww: ww,
hh: hh
},
onLoad() {
var that = this;
wx.startAccelerometer({
success(res) {
that.start()
}
});
this.hf_w = ww / 2;
this.hf_h = hh / 2;
this.x = 0;
this.y = 0;
this.ax = 0;
this.ay = 0;
this.vx = 0;
this.vy = 0;
this.draw();
},
start() {
var vt = 5, that = this;
wx.onAccelerometerChange(function (res) {
that.ax = res.x * vt;
that.ay = res.y * vt;
});
setInterval(function () {
var lo = ww / hh > 1;
if (lo) {
that.vx = that.vx + that.ay;
that.vy = that.vy + that.ax;
} else {
that.vy = that.vy - that.ay;
that.vx = that.vx + that.ax;
}
that.vx = that.vx * 0.98;
that.vy = that.vy * 0.98;
that.y = parseInt(that.y + that.vy / 50);
that.x = parseInt(that.x + that.vx / 50);
that.boundingBoxCheck();
that.draw();
}, 100 / 6)
},
end() {
wx.stopAccelerometer()
},
draw() {
console.log(this.x);
ctx.clearRect(0, 0, ww, hh);
ctx.fillRect(0, 0, ww, hh)
ctx.fill()
ctx.beginPath();
ctx.arc(this.x, this.y, 20, 0, Math.PI * 2);
ctx.setFillStyle('#FFFFFF');
ctx.fill()
ctx.draw();
},
boundingBoxCheck() {
if (this.x < 0) { this.x = 0; this.vx = -this.vx; }
if (this.y < 0) { this.y = 0; this.vy = -this.vy; }
if (this.x > ww - 20) { this.x = ww - 20; this.vx = -this.vx; }
if (this.y > hh - 20) { this.y = hh - 20; this.vy = -this.vy; }
}
})