将加速度计用作控制器(Android)的最佳方法

问题描述 投票:0回答:1

我正在尝试开发可用作PC鼠标的应用程序。我想用加速度计来做到这一点。到目前为止,我已经设法使它适用于屏幕上的X +和Y-轴(左和上),但是,如果我尝试将鼠标向下或向右(-X和+ Y轴)移动,它将不起作用。我不确定是什么问题,任何建议将不胜感激。

  public void onSensorChanged(SensorEvent event) {

    deltaX = Math.abs(lastX - event.values[0]);
    deltaY = Math.abs(lastY - event.values[1]);


    deltaX = deltaX * 10;
    deltaY = deltaY * 10;


    if(deltaX > 2 && deltaY > 2){
      sendMSG((int)deltaX +"&"+(int)deltaY +"\n");
      Log.d("Velocity", "X + Y Values :: " + deltaX + deltaY);

    }

  }

这是我获取坐标的方法,然后将其发送到我的服务器,我知道我的问题出在此方法的某处,以及我如何处理坐标,但是我不确定如何解决它。

android accelerometer sensor android-sensors
1个回答
0
投票

由于您使用abs函数计算了增量,所以它们始终为正,并且您的运动将在一个方向上进行。尝试这样的事情-

deltaX = (lastX - event.values[0]) * 10;
deltaY = (lastY - event.values[1]) * 10;
© www.soinside.com 2019 - 2024. All rights reserved.