2017-03-02 7 views
0

さまざまなアンドロイドデバイス間で同じボール速度を得るには問題があります。それは跳ねるボールのアウトブレイクゲームです。私は銀河系s7でこのアプリケーションを開発しましたが、私のs3でそれをテストすると、ボールやその他のオブジェクトは約30%速くなりますか?Android:アニメーションオブジェクト異なる速度の異なるデバイスの違い

  • 私はsurfaceviewを使用していますが、フレームレートは一定で約60fpsの
  • ballspeedはDPのtermnsに設定とxml-リソースとして格納されていること。 (ボールの半径と同じ)

    <dimen name="ballSpeed">5dp</dimen> 
    <dimen name="ballRadius">6.25dp</dimen> 
    
私は単に、その後

float ballSpeed = createGC.getContext().getResources().getDimensionPixelSize(R.dimen.ballSpeed); 

とリソース・ファイルに格納されたフィールドを取得

それでは、どのようにボールオブジェクトのコンストラクタにballspeed通過します速度の違いを説明できますか? fpsは同じ速度で、半径はdpiで表されます。しかし、どうにかしてサムスンギャラクシーs3の速度が速くなります。私はそれがスクリーンサイズと関係があるかもしれないと思う。

s7 inch: 5.1 
s3 inch: 4.8 

だから私の質問は以下のとおりです。

異なるscreensizesはスピードで彼の違いへの説明だろうか? どうすればこれを考慮に入れることができますか?

答えて

0

hereで説明したように、dpはすべての画面で同じサイズではありません。あなたはその機能であなたのユニットを変更することができます(例えば、mmやptなど)

0

速度の基準は何ですか?ボールは異なるピクセル量または表示の一部を動かすか?

この基準はボールスピードのためにどのサイズ単位を選択するかに影響します。ボールが画面の同じ部分を移動する必要がある場合、dpが最良の方法です。同じ薬学的距離(例えばインチ)を移動する必要がある場合は、inまたはptを使用します。

関連する問題