std::chrono를 이용하여 원하는 fps로 동작하게 하는 코드 까먹을까봐 박제함.
#include <iostream>
#include <chrono>
#include <cstdint>
const int fps = 60;
using namespace std;
using namespace chrono;
using frame = duration<int32_t, ratio<1, fps>>;
using ms = duration<float, milli>;
int main()
{
time_point<steady_clock> fpsTimer(steady_clock::now());
frame FPS{};
while (true)
{
FPS = duration_cast<frame>(steady_clock::now() - fpsTimer);
if (FPS.count() >= 1)
{
fpsTimer = steady_clock::now();
cout << "LastFrame: " << duration_cast<ms>(FPS).count() << "ms | FPS: " << FPS.count() * fps << endl;
}
}
return 0;
}
출처 : https://www.gamedev.net/forums/topic/690860-60-fps-game-loop-using-stdchrono/
추가 : Making an accurate Sleep() function | computerBear (blat-blatnik.github.io)
'Basic Programming > C, C++' 카테고리의 다른 글
C++ - 난수 생성하기 (rand()를 사용하지 않기) (0) | 2020.10.14 |
---|---|
C++ - MMF(Memory Mapping File) (0) | 2020.05.21 |
C++ - OutputDebugString()을 편하게 사용 (0) | 2019.12.05 |
C++ - 덤프 파일을 통한 사후 디버깅 (0) | 2018.11.21 |
C++ - region, endregion (0) | 2018.08.03 |