「IsFixedTimeStep」タグのついた投稿

今回は、FPS操作に関係する処理を紹介します。

まず、FPSを指定した数字に変更する処理です。

行う事は簡単で、Game1クラス内で、TargetElapsedTime プロパティを変更するだけです。

TargetElapsedTime は1フレームでの目標の経過時間を保存しています。

TargetElapsedTimeはTimeSpan型なので、TimeSpanを使用して以下のように設定します。今回は30FPSに設定しています。

Double fps = 30.0;
TargetElapsedTime = TimeSpan.FromSeconds(1.0 / fps);

これで30FPSになるように設定されます。ちなみに、上記で [ 1 / 30 ] と設定されているのは、[ 1秒 / 一秒内の目標フレーム数 ] で、1フレームの目標経過時間を得られるからです。

他のFPS操作として、FPSを固定したくない場合(Update()が呼ばれる間隔を一定にしたくない時)、固定しない様に変更出来ます。

IsFixedTimeStep = false;

これはテスト等に使用できますが、ゲームを作って配布する際にはFPS固定した方が良いので、あくまでテスト方法として覚えておくのが個人的にオススメです。