Console Project/4. GameLoop
C++2019. 12. 10. 13:59
게임 루프는 일정한 입, 출력 속도를 보장하고, 예기치 못한 렉에 유연하게 대응할 수 있어야 한다.
Game 클래스
Game클래스는 게임의 초기화 및 업데이트, 렌더링을 담당하는 게임의 최상위 클래스이다. 모든 게임에 대한 코드는 해당 클래스 내에서 작업 하게 된다.
class Game
{
private:
int width;
int height;
bool exit;
public:
Game(int width, int height);
void Release();
void Update(float deltaTime);
void Render();
inline bool IsExit() { return exit; }
};
GameLoop
void main() {
..
Game game(SCREEN_WIDTH, SCREEN_HEIGHT);
int targetFPS = 25;
int targetFrameMS = 1000 / targetFPS;
ULONGLONG lastTime = GetTickCount64();
while (true) {
ULONGLONG current = GetTickCount64();
ULONGLONG elapsed = current - lastTime;
game.Update(elapsed / 1000.f);
if (game.IsExit()) {
break;
}
game.Render();
if (targetFrameMS > elapsed) {
Sleep(targetFrameMS - elapsed);
}
lastTime = current;
}
game.Release();
..
'C++' 카테고리의 다른 글
Console Project/5. 문자 출력 (0) | 2019.12.10 |
---|---|
Console Project/4.5 중간보고 (0) | 2019.12.10 |
Console Project/3. 이미지 (0) | 2019.12.10 |
Console Project/2. 출력 버퍼 (0) | 2019.12.09 |
Console Project/1. 화면 (0) | 2019.12.09 |
댓글()