[Top Page][Edit][Discussion][Edit History][All Pages][Recent Changes][->Japanese]

HSPHelp:es_sync


es_sync

es_sync p1                      [画面更新とウェイト]

    p1=ウェイト時間(ms)
    p2=V-BLANK待ちフラグ(0=待つ、1=待たない)

( 拡張プラグイン[hspdx]が必要です )

説明

描画された画面を更新するとともに、 以前のHSPHelp:es_sync命令実行時から経過した時間を測定して、システム変数statに返します。

p1で、最低でも何msのウェイトを取るかを指定することができます。 p1を省略するか、0を指定した場合は最低ウェイト時間はなくなります。 HSPHelp:es_sync命令は、垂直帰線(V-BLANK)を待って画面を更新します。つまり、 最低でも以前HSPHelp:es_sync命令が呼ばれてから、1フレーム分の時間はウェイトが取られます。

1フレーム分の時間は、モニタに出力されている映像周波数にもよりますが、 多くの場合1/60秒程度になっています。これは、 多くのビデオゲームや家庭用ゲーム機が画面更新しているサイクルと同じです。 通常は、HSPHelp:es_sync命令のみでウェイトの指定をしなくても、約1/60秒ごとのウェイトとなります。 プログラムの処理が多かったり、画面の書き換えに要する時間が多くなると、 更新が1フレームごとに行なわれなくなる時が出てきて、動きがガタガタとしたぎこちない、 いわゆる「処理落ち」の状態になります。このような時は、最低ウェイト時間を入れて、 画面の更新を2フレームごとにするなどして対処することができます。

また、p1にマイナスの値を入れることで前回の実行で取りすぎたウェイトをできるだけ 取り戻すようにすることもできます。 FPSが安定しない場合はこちらを使うことで改善されるかもしれません。 先述の通り、HSPHelp:es_sync命令はV-BLANKを待ってウェイトを取りますが、 p2に1を指定するとV-BLANKを待たずに画面を更新することができます。 これによりリフレッシュレート以上の速度でウェイトを取ることができますが、 画面がブレたりちらつきが発生しますので、普段は指定する必要はありません。 なお、ウィンドウモードでは基本的にV-BLANKは待ちませんので、 ウィンドウモードで動かすときは必ずウェイトを設定して下さい。

HSPHelp:es_sync命令を実行した後には、システム変数statに経過時間が代入されています。 これはプログラムの実行にかかっている時間を計測する最も簡単な手段です。 この数値がそのままベンチマークとなります。

備考

当プラグインに関する質問、要望などはSinagawaへお願いします。