我一直试图弄清楚为什么我的游戏在不同设备上的播放方式略有不同(即:某些设备似乎比其他设备在加速度计方面更敏感)。
我刚刚注意到,在一台设备上倾斜我的设备并记录输出时,输出似乎在-9.5和+ 9.5之间,而在另一台设备上,它似乎在-10.7到+10.7左右。<登记/> 我正在使用这个返回的数据来移动我的精灵。
@Override
public void onSensorChanged(SensorEvent event) {
tiltAmount = event.values[device_rotation];
Log.v("Tag", "Value: " + tiltAmount);
}
在上面的代码示例中,当我将设备倾斜到相反的极端(逆时针90°和顺时针90°)时,我得到了上述范围。
我希望这些数据在整个设备上保持一致。
有没有人知道如何将其标准化?
答案 0 :(得分:0)
似乎你定义了极值。在这种情况下,您可以将给定值除以总动态范围以获得标准化值:
NormalizedValue = x / (Highest - Lowest)