#include <BuddhaGameTime.h>
Public Member Functions | |
GameTime (void) | |
コンストラクタ | |
GameTime (TimeSpan &totalRealTime, TimeSpan &elapsedRealTime, TimeSpan &totalGameTime, TimeSpan &elapsedGameTime) | |
コンストラクタ | |
GameTime (TimeSpan &totalRealTime, TimeSpan &elapsedRealTime, TimeSpan &totalGameTime, TimeSpan &elapsedGameTime, bool isRunningSlowly) | |
コンストラクタ | |
bool | IsRunningSlowly () |
ゲームループが TargetElapsedTime より時間がかかっているかどうかを示す値を取得する | |
Public Attributes | |
TimeSpan | TotalRealTime |
ゲームがスタートしてからの実時間(壁時計)の経過時間間隔 | |
TimeSpan | ElapsedRealTime |
最後のフレームからの実時間(壁時計)の経過時間間隔 | |
TimeSpan | TotalGameTime |
ゲームがスタートしてからの経過時間間隔 | |
TimeSpan | ElapsedGameTime |
最後のフレームからの経過時間間隔 |
この構造体は TimeSpan 構造体を利用して、ゲームが起動してからのタイムスパン(時間間隔の量)と、 前のフレームからのタイムスパンを提供する。 BuddhaLib::Game は固定フレーム方式を採っているため、 Game::Update() が1秒間に30回呼び出しが あると期待することができる。この期待値がゲーム時間の値であり、 ElapsedGameTime と TotalGameTime で提供されている。
通常 ElapsedGameTime == ElapsedRealTime であり、TotalGameTime == TotalRealTime である。
しかし、現実には、処理落ちが発生し、 Game::Draw() をスキップして Game::Update() を呼び出さなけ ればならない状況が発生する場合がある。このようなケースでは、 ElapsedGameTime と TotalGameTime にはバーチャルな値しか求めることができず、 ElapsedRealTime と TotalRealTime が「現実」の値を提供する。 このように、リアル時間とゲーム時間に違いが生じると、 IsRunningSlowly() は真を返すようになる。
bool BuddhaLib::GameTime::IsRunningSlowly | ( | ) | [inline] |
ゲームループが TargetElapsedTime より時間がかかっているかどうかを示す値を取得する