VSYNC 1 での処理オーバー回避について | りょうのゲーム塾

りょうのゲーム塾

再開、準備中。

VSYNC 1 の時にどうしても処理オーバーする場合には
それを回避する方法として VSYNC 2 を使用します。


■ VSYNC 2 の動作
VSYNC 2 とは1秒間に30回同期するという意味です。
(ただし、処理オーバーした場合にはそうでない)
1回の周期は SYNC 1 の時の2倍になるので
処理が多く処理オーバーを繰り返す場合にこれを使います。
同様にもしこの場合でも処理オーバーをする場合には
SYNC 3 という具合にすればいいわけです。

しかしこれは1秒間を基本60回で処理していたものに対して
30回で1回、20回で1回と処理回数が減るために
次のようなデメリットが生じます。

1)移動する物体の動きが荒くなる。
2)キーの反応が少し鈍くなる。
3)あたり判定などに違和感が出る。
4)あたり判定に失敗する。


図1

思い出の欠片-VSYNC2_N

図2

思い出の欠片-VSYNC1_O1


この図2を見ると前回の記事の図2と同じことがわかります。
しかし、前回の場合次のような事も起こります。


図3

思い出の欠片-VSYNC1_NG


この様にタスクの実行時間によりタイミングが同じになりません。

しかし VSYNC 2 の場合には。。。


図4

思い出の欠片-VSYNC2_OK

VSYNC 2 の場合にはタスクの実行に関わらずタイミングを同じに出来ます。
(ただし処理オーバーはしていないものとします)