我在我的应用程序中实现了一个震动检测器来掷骰子。每次摇动,每个骰子都会掷一次。问题是,当我摇动手机时,它会一次“掷”多次骰子。
我试过添加延迟并更改灵敏度,但都没有用。
private final SensorEventListener sensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float x = sensorEvent.values[0];
float y = sensorEvent.values[1];
float z = sensorEvent.values[2];
acelLast = acelVal;
acelVal = (float) Math.sqrt((double) (x*x + y*y + z*z));
float delta = acelVal - acelLast;
shake = shake * 0.9f + delta;
if (shake > 12) {
// roll dice
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
隔江千里
慕桂英546537
相关分类