※(2026年10月12日追記)このページはFull-HD解像度基準のプログラムです。
『秒間60フレーム』です。
バーチャファイター2等で有名になったこの処理、簡単に言うと
1秒間に60コマの静止画でアニメーションを表示しますよって事。
ちなみにテレビは約30フレームです。(29.97フレーム)
30フレームより60フレームの方がコマ数が多いので滑らかに
アニメーションしているように見えます。
パラパラ漫画の原理です。
何で60フレームなの?と、疑問を持つ方もいるでしょう。
それは、人間が認識できる限界が、せいぜい秒間60フレーム程度だからです。
※Full-HD解像度の場合、4Kモニターやゲーミングモニターでアニメーションを
表示再生すると60フレームでは滑らかな表示にはなりません。
(120~144フレーム、人によっては240フレームが必要になる場合もあります。)
※間違った認識で書いていました。すみません。
やろうと思えば120FPSでも、それ以上でも今のPCならできます。
でも、人間の認識できる限界が秒間60フレーム程度(Full-HD解像度の場合)なんだから、
それ以上のタイミングでの描画というのはハッキリ言って無駄です。
その無駄を省いて描画回数は1秒間に60回を最大として、
それ以外の時間はフレームアップデートやメッセージループ処理、その他の
雑務をCPUにやらせますよっていう処理が『秒間60フレーム』なのです。
つまり、描画回数を最小限に抑える事でメインループ部や並列処理を
CPUがやり易いようにしますよって事。
実際のところは、節約法の一つであった訳です。
今回のプログラムは可変SleepによるCPUに優しい『秒間60フレーム』です。
用途にも依りますが、Sleepの値は1で固定するのも良いかもしれません。
※古い時代の話なので、今の基準に合わせて秒間〇〇〇フレームという風に
調整するのが良いですね。

| ファイル |
| main.cpp |
| FPS.h |
FPS.h
|
#pragma once #include <Windows.h> using namespace std; #define CPUMax 30000 //FPS管理クラス |
main.cpp
|
#pragma comment(linker,
"/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") #include <stdlib.h> using namespace std; #define WIDTH 640 FPS *fps = new FPS(60);//秒間60フレーム(可変sleep) //回転用 void display(void){ void idle(void){ void Init(){ void main(int argc, char
*argv[]){ |