移动端html5重力感应

下面是测试案例,只测试过itouch,iphone
http://06wjin.sinaapp.com/billd/     
http://06wjin.sinaapp.com/billd/test.html
重力感应主要用到两种事件:
1 orientationchange
     这个事件在屏幕发生翻转时触发
     window.orientation可获得设备的方向,一共有三个值0:竖直,   90:右旋,   -90:左旋
deviceorientation  和  MozOrientation(firefox专用)
deviceorientation事件可获得三个值alpha,beta,gamma,分别代表绕Z轴的旋转角度(0~360), 绕X轴的旋转角度 (-180~180), 绕Y轴的旋转角度 (-90~90)
MozOrientation事件中 可获得三个值 z,x,y, 分别代表垂直加速度,左右的倾斜角度,前后的倾斜角度(取值范围:-1~1)
 
坐标系见下图
  移动端html5重力感应 - FIR - 显微镜
 
下面是示例游戏用到重力感应的代码:
window.onorientationchange =  function(e){
     game.hideNavBar();    //屏幕翻转时隐藏地址栏
      if(game.stage) game.stage.updatePosition();  //更新舞台位置
};

window.ondeviceorientation =   function(e) 
{
     var ang;
     var o = window.orientation;   //获取设备方向
     if(o == 90){
        ang = e.beta;   //设备横向1
    }
     else  if(o == -90){
        ang = -e.beta;   //设备横向2
    }
     else  if(o == 0){
        ang = e.gamma;     //设备纵向
    }

     if(ang > 5) 
    {
        keyState[Q.KEY.RIGHT] =  true;
    }
     else  if(ang < -5) 
    {
        keyState[Q.KEY.LEFT] =  true;
    }
     else
    {
        keyState[Q.KEY.RIGHT] =  false;
        keyState[Q.KEY.LEFT] =  false;
    }
}

转载于:https://www.cnblogs.com/luckk/p/4914245.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值