Laya重力感应

Laya重力感应

陀螺仪Gyroscope

Laya.Gyroscope.instance.on(Laya.Event.CHANGE, this, onDeviceorientation);
function onDeviceorientation (absolute, rotationInfo){
    var alpha = rotationInfo.alpha;//[0, 360]
    var beta = rotationInfo.beta; //[-180, 180] 左-右+
    var gamma = rotationInfo.gamma; //[-90, 90] 前+后-
}
beta = beta > 20 ? 20 : beta < -20 ? -20 : beta;
gamma = gamma > 20 ? 20 : gamma < -20 ? -20 : gamma;
this.bg.bg.x = 0 + -beta / 20 * 10;
this.bg.bg.y = 0 + gamma / 20 * 10;
this.bg.f1.x = 0 + beta / 20 * 10;
// this.bg.m1.x = beta / 20 * 3;
this.bg.f1.y = 750 + -gamma / 20 * 10;
  • 东(X)在地面上,垂直于北轴,向东为正。
  • 北(Y)在地面上,向正北为正(指向北极)。
  • 上(Z)垂直于地面,向上为正。

对于一个移动设备,例如电话或平板,设备坐标系的定义于屏幕的标准方向相关。
如果在设备旋转或展开滑动键盘时屏幕方向发生变化,这不会影响关于设备的坐标系的方向。

  • x在屏幕或键盘平面上,屏幕或键盘的右侧为正。
  • y在屏幕或键盘屏幕上,屏幕或键盘的上方为正。
  • z垂直于屏幕或键盘屏幕,离开屏幕或键盘为正。

加速计

Laya.Accelerator.instance.on(Laya.Event.CHANGE, this, monitorAccelerator);
function monitorAccelerator(acceleration,accelerationIncludingGravity,rotationRate,interval){
    var vx = accelerationIncludingGravity.x;
    var vy = accelerationIncludingGravity.y;
    var a = Laya.Accelerator.getTransformedAcceleration(acceleration);
    console.log("加速度", acceleration);
    console.log("设备的加速度", vx, vx);
    console.log("自转速率", ~~a.x, ~~a.y, ~~a.z);
    console.log("时间间隔", interval);
}

评论