2日前にGoogle Playストアでモーションセンサーを使用したゲームを公開しました。このゲームはボクサーゲームであり、ユーザーがスマートフォンのスコアを振ると自動的に評価されます。スコアを評価するには、TYPE_LINEAR_ACCELERATIONセンサーを使用します。TYPE_LINEAR_ACCELERATIONスマートフォンブランドに応じてセンサー値が変更される
しかし、問題は私がゲームを公開した後、ユーザーの一部がスコアを送信します。私はいくつかのスマートフォンでは、スマートフォンの中には500ポイントを得るのが難しい場合は900ポイントを得るのは簡単だと分かりました。私は、同じユーザーがこのゲームで(同じ力で)異なる電話を振ると、そのことを意味します。 Xスマートフォンでは400ポイント、Yスマートフォンでは850ポイントなどが得られます。
なぜこの不等式が発生するのですか?
スマートフォンの中には、スコアを評価するスマートフォンがいくつかあると評価された(推測する)ものがあります。
マイimplentation(おおよそ)
sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION), SensorManager.SENSOR_DELAY_FASTEST);
-
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) {
float[] values = event.values;
float x = values[0];//to get X - axis acceleration
//.......
//........
}
}
私は自分のアプリケーションのリンクを共有することができ、それが許可されていますか?はいの場合は、言ってください。私は自分のアプリケーションリンクを共有することができます。
注:アルゴリズムを説明して、スコアを得るためにセンサーから最大加速度を得て、変数に最大値を保持したいと思います。ユーザーがスコアボタンをクリックした後、私は40を掛けてスコアを得る。
これらの携帯電話はそれぞれ異なるセンサーを使用しているため、遅延、リンギング動作、感度などが異なります。特に、最大値が異なります。加速度計が加速するまでには最大値、より低い値でセンサーをキャッピングした可能性があります。 –
この質問のための最良のアプローチ。 – user119949
誰が最大限違うと言いますか?異なる携帯電話用の加速度センサーの境界線はありますか? – user119949