2012-02-11 17 views
0

私が理解するように、ゲームドロー機能は1秒間に60回発生し、その間にできるだけ多くの回数更新が行われます。本当?XNA Cを描画する時間は?

Draw関数またはその関数から呼び出される関数で、私のケースでUpdateが非常に高速であると仮定して、描画する時間が残っているかどうか尋ねるのが最も良い方法です。あるいは、ドローが1/60秒以上かかるかどうかをどうやって調べるか。

答えて

3

Update()Draw()は、デフォルトで1秒間に最大60回発生します。 Update()通話速度を変更するには

、ドローがより1/60秒よりを取っている場合は600が必要ティック数また

で、人はどのように見つけるん

base.IsFixedTimeStep = true; 
base.TargetElapsedTime = new TimeSpan((long)(TimeSpan.TicksPerSecond/600f)); 

を使用。

GameTime.IsRunningSlowlyは、遅くなると自動的に変更されます。

public void Draw(GameTime gameTime) { 
    if (gameTime.IsRunningSlowly) { 
     // do stuff 
    } 
} 
+0

@alanゲームではこのオプションをオプション画面で設定できるようにするのはむしろ正常ですか?アンチエイリアスや解像度、奥行きなどのように?それで、描画メソッドは、それが必要なものを描画し、FPSが苦しんでいる場合、ユーザーは設定を無効にすることができます。 – Alxandr

+0

実際、私は現代のインディー・ゲームが飛行機でこれをやっているのを見ました。しかし、それは問題ではありません。この場合は、外出先でうまくいきます。 – alan2here

関連する問題