FPSを表示する際のwait処理の質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ezi

FPSを表示する際のwait処理の質問

#1

投稿記事 by ezi » 15年前

「C言語ゲームプログラミングの館」の
「s6. FPSを表示する。」内で
wait_fanc関数の意味がよくわかりません。

各フレーム中で時間を調整して待ちを発生させているようですが、
ScreenFlip関数内で調整してくれるので必要ない気がします。

何か意図があるのでしょうか?
つたない質問ですがよろしくお願いします。

Dixq (管理人)

Re:FPSを表示する際のwait処理の質問

#2

投稿記事 by Dixq (管理人) » 15年前

> eziさん

こんにちは。
確かに60Hzのモニタを使っていれば必要ないかもしれません。
では試しにご自分のモニタのリフレッシュレートを70や80に変更して見て下さい。
結果どうなるでしょうか?

もしゲーム内で、弾が1フレームに4ピクセル進むような計算がなされていたとすると、
60Hzのモニタを使っている場合や80Hzのモニタを使っている場合ではスピードが異なる事になります。
しかしユーザーに「プレイ前にモニタのリフレッシュレートを60Hzに変更してから遊んでください」というのは現実的ではありません。
ということでゲーム側で待機処理が必要です。

しかしsleep関数には誤差があり、このままでは正確に60FPSにはならないでしょう。
もし厳密な計算が必要であれば龍神録プログラミングの館をご覧ください。
http://dixq.net/rp/43.html

ezi

Re:FPSを表示する際のwait処理の質問

#3

投稿記事 by ezi » 15年前

Dixqさん
こんにちはです。

なるほど!
ScreenFlip関数内で調整してくれるのは
次のフレームまでの待ち時間なので
フレームレートが60Hzより高い時はその画像のまま
次フレームまで待ってた方が良い。
その為にwait_fanc関数ある訳ですね。

解りました!有難う御座います。

ps:
ブログを拝見した所、本を執筆なさっているようで、
出版を楽しみにしております。

ezi

Re:FPSを表示する際のwait処理の質問

#4

投稿記事 by ezi » 15年前

解決マークつけ忘れました^^;

閉鎖

“C言語何でも質問掲示板” へ戻る