ページ 11

固定FPSについて

Posted: 2010年1月08日(金) 13:16
by たこやき
一つ質問なのデですが、FPSを固定することはできたのですが(timeBeginPeriod,timeEndPeriodを使用する)
これってパソコンによっては変化することはあるのでしょうか?

Re:固定FPSについて

Posted: 2010年1月08日(金) 13:31
by たこやき
環境書くの忘れてました。win2000~winXPです。

Re:固定FPSについて

Posted: 2010年1月09日(土) 01:34
by とおり
このサイト内を検索した限りでは、timeBeginPeriodという変数名で記事は見つかりませんでした。
ただし、以下2つの記事のどちらかを参考にしてFPSの処理を実装しているのであれば、60フレームで
表示させるように重みの処理を行っているので、パソコンによって変化しますよ。

・「ゲームプログラミングの館」s6. FPSを表示する。
・「旧シューティングゲームの館」3. 静的変数を使用してFPSを表示する。

また、パソコンを変えなくても、以下のようなプログラムでFPSの低下を検証できます。

FPSを固定して表示するプログラムが書けたのであれば、画像から読み込んだキャラクタなどを表示
するプログラムも作れると思います。まずは100000キャラクタを毎回描写します。
それができたら、キャラクタのx座標、y座標を計算して動かすプログラムにします。

すると1フレームである1/60秒(16ミリ秒~17ミリ秒)で、100000個の画像を表示しなければなりません。
かなりスペックが高いパソコン出ないと、1/60秒では、100000キャラクタを表示できないので、
30FPSとかになってしまいます。

フレームの増加と共に、表示する画像を増減させたりしてもFPSの変化が分かりやすいと思います。

Re:固定FPSについて

Posted: 2010年1月09日(土) 02:36
by kazuoni
関数timeBeginPeriodはSDK依存なので、windows(95以降)でしか動作しません。
また、もちろん、FPSはユーザーの環境によるので、
自分のPCスペックが並だとしても、
一概に「FPS=60がどのパソコンでも保てる」とはいかないですね。

Re:固定FPSについて

Posted: 2010年1月10日(日) 16:08
by たこやき
回答ありがとうございます。

1、・「ゲームプログラミングの館」s6. FPSを表示する。を
xpで自分で簡単なゲームプログラムを作ってvistaで使ってみたのですが、処理落ち(一瞬止まる(?))
して見栄えが悪くて、自分で考えたのでやったら処理を落ちは最小限に(1より一瞬止まることを
少し抑えることが出来ました)、できたのですがただFPSが56~59になるのですが、こういう場合自分で作った
プログラムの方を作った方がよいのでしょうか?