【问题标题】:How to take the maximum value of the Gyroscope LibGdx陀螺仪LibGdx如何取最大值
【发布时间】:2018-08-06 12:13:13
【问题描述】:

我正在编写一个使用陀螺仪的 Android 游戏,我需要取最大可能的陀螺仪值。


我知道如何获得陀螺仪值。 我需要取最大可能的陀螺仪Z值,因为每部手机都有不同的陀螺仪和不同的陀螺仪最大值。

【问题讨论】:

  • “最大可能的陀螺仪值”对您来说是什么意思?
  • 这是陀螺仪可以注册的最大值
  • 自己校准怎么样?将当前最大值保存在某处,如果有时您读取到更大的值,则只需更新保存的值。

标签: java android libgdx


【解决方案1】:

您可以在您的活动或特定课程中implement a SensorEventListener

然后你可以通过陀螺仪实例化一个 SensorManager 来获取值

SensorManager sensorManager;
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

然后设置一个 SensorSensor.TYPE_GYROSCOPE

Sensor gyroscope;
gyroscope = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);

并覆盖这两个方法

@Override
public void onSensorChanged(SensorEvent event) {
    // Here you get values from the gyroscope
    if (event.sensor == gyroscope) {
        double accX = event.values[0];
        double accY = event.values[1];
        double accZ = event.values[2];
    }
}

@Override
public void onAccuracyChanged(Sensor sensor, int i) {

}

更多具体参考:Android motion Sensors

附: 不要忘记检查传感器是否为!= null

【讨论】:

    【解决方案2】:

    libgdx 中没有任何方法可以让您获得加速度计的最大值,因为它们是基于硬件的,并且不存在 AFIAK 的 API。

    this answer看来,典型值为 +/- 2G

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多