X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 207 (tree) |
|---|---|
| Time | 2018-09-26 23:01:54 |
| Author | |
内部タイマーの精度向上によるfps制御の改善
| @@ -37,12 +37,14 @@ | ||
| 37 | 37 | hInstance = 0; |
| 38 | 38 | nCmdShow = 0; |
| 39 | 39 | hWnd = NULL; |
| 40 | + | |
| 41 | + timeBeginPeriod(1); //timeEndPeriodと対 | |
| 40 | 42 | } |
| 41 | 43 | |
| 42 | 44 | //! @brief ディストラクタ |
| 43 | 45 | WindowControl::~WindowControl() |
| 44 | 46 | { |
| 45 | - // | |
| 47 | + timeEndPeriod(1); //timeBeginPeriodと対 | |
| 46 | 48 | } |
| 47 | 49 | |
| 48 | 50 | //! @brief アプリケーションの情報を設定 |
| @@ -276,6 +278,7 @@ | ||
| 276 | 278 | |
| 277 | 279 | //! @brief fps(Frames Per Second:フレームレート)調整 |
| 278 | 280 | //! @return 調整を実施:true 調整を実施せず:false |
| 281 | +//! @attention WindowControlクラスを初期化しないと、タイマーの精度が出ません。 | |
| 279 | 282 | bool ControlFps() |
| 280 | 283 | { |
| 281 | 284 | static unsigned int ptimec = 0; |
| @@ -285,7 +288,10 @@ | ||
| 285 | 288 | nowtime = GetTimeMS(); |
| 286 | 289 | waittime = GAMEFRAMEMS - (nowtime - ptimec); |
| 287 | 290 | if( (0 < waittime)&&(waittime <= GAMEFRAMEMS) ){ |
| 291 | + //timeBeginPeriod(1); | |
| 288 | 292 | Sleep(waittime); |
| 293 | + //timeEndPeriod(1); | |
| 294 | + | |
| 289 | 295 | ptimec = GetTimeMS(); |
| 290 | 296 | return true; |
| 291 | 297 | } |
| @@ -296,13 +302,14 @@ | ||
| 296 | 302 | |
| 297 | 303 | //! @brief ミリ秒単位を返す |
| 298 | 304 | //! @return ミリ秒 |
| 305 | +//! @attention WindowControlクラスを初期化しないと、タイマーの精度が出ません。 | |
| 299 | 306 | unsigned int GetTimeMS() |
| 300 | 307 | { |
| 301 | 308 | unsigned int time; |
| 302 | 309 | |
| 303 | - timeBeginPeriod(1); | |
| 310 | + //timeBeginPeriod(1); | |
| 304 | 311 | time = timeGetTime(); |
| 305 | - timeEndPeriod(1); | |
| 312 | + //timeEndPeriod(1); | |
| 306 | 313 | |
| 307 | 314 | return time; |
| 308 | 315 | } |