Game Programming in C++

Game Programming in C++ Chapter1 - 사용자 입력 처리

skyho 2025. 8. 16. 21:48
반응형

 

산자이 마드하브 저 / 박주항 역 ❘ 에이콘

 

책의 소스 코드를 직접 작성해보면서 정리한 글입니다. (실습환경: windows)

책 소스 코드: GitHub - gameprogcpp/code: Game Programming in C++ Code


1. 사용자 입력 처리

윈도우상의 X 아이콘을 클릭하거나, 사용자가 Esc 키를 누르면, 게임을 종료시켜 보자.

 

2. Game.hpp

private 함수로 processInput() 추가

void processInput(); // 사용자 입력 처리

 

3. Game.cpp

  ● processInput() 구현

void Game::processInput()
{
	SDL_Event event;
	while (SDL_PollEvent(&event)) //if event is occurred in queue, it will return TRUE
	{
		switch (event.type)
		{
		case SDL_EVENT_QUIT: //windows x icon is pressed
			_running = false;
			break;
		}
	}

	const bool* state = SDL_GetKeyboardState(NULL);
	if (state[SDL_SCANCODE_ESCAPE]) //Esc is pressed
	{
		_running = false;
	}
}

 

  ●  runLoop() 수정

void Game::runLoop()
{
	while (_running)
	{
		processInput();
		generateOutput();
	}
}

 

이제 사용자 입력(Esc, X 아이콘 클릭)을 처리할 수 있게 되었다.

반응형