0

私のゲームでは、加速度計から加速度を取得します。私の計算を計算すると、測定単位をピクセル単位に変える係数を適用する必要があります。

Android アプリ用に作成された係数を適用します (サンプル)。

 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
 mXDpi = metrics.xdpi;
 mYDpi = metrics.ydpi;
 mMetersToPixelsX = mXDpi / 0.0254f;
 mMetersToPixelsY = mYDpi / 0.0254f;

私の加速度に合わせて、ピクセル/秒^ 2を取得します。このようにして、すべてをメートル単位で考えるのではなく、コードのどこでもピクセルを使用できます。

そうですよね?

4

1 に答える 1

0

それはあなたが課したい物理学の種類に依存するでしょう。(これは、ニュートン力学が必要であることを前提としています。)デバイスの動きを追跡する場合は、加速度を統合して速度を取得してから、速度を統合して位置を取得する必要があります。または、中間ステップをスキップして、「acceleration」から0.5 * Acceleration ^ 2を使用して位置を変更するように変換することもできます(次に、その結​​果に、実験で決定する必要がある適切なスケーリング係数を掛けます)。(この2番目の方法では、一定の動きを適切に処理できない場合があります。)独立した次元ごとに、速度と位置は、これらの漸化式の累積合計になります。

velocity[t] = acceleration[t] *(t -(t-1) ) + velocity[t-1]
position[t] = position[t-1] + velocity[t]*(t -(t-1) )
于 2012-04-17T12:58:48.947 に答える