WIN32API FrameWork/한단계씩 직접 구현
11. Player에게 총을 달아주고 입력을 받아 회전시키기
hyrule
2022. 5. 17. 16:02
https://hyrule.tistory.com/111
*** 공부 방법 ***
1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처
hyrule.tistory.com
//편의성을 위한 수정
LRESULT CGameManager::WndProc()
편의성을 위해 위 메소드에 아래 코드를 추가하였다.
esc 키를 누르면 프로그램이 종료된다.
case WM_KEYDOWN:
if (wParam == VK_ESCAPE)
{
m_Loop = false;
PostQuitMessage(0);
}
break;
< 사전 지식 >
if (GetAsyncKeyState('A') & 0x8000)
GetAsyncKeyState 함수를 사용하여 키의 입력을 확인할 수 있다.
<반환값>
0: 해당 키가 눌러진 상태가 아니다.
0x8000: 해당 키를 지금 누르고 있는 상태이다.
0x1: 해당 키를 이전 프레임에 눌렀다.
하지만 키를 눌렀는지에 대한 시스템은 나중에 따로 개별적으로 만들 것이고
지금 당장은 그냥 '눌렸는지'(0x8000)만 체크할 것이다.
따라서 위의 코드는 'A버튼이 눌렸는지' 에 대한 함수이다.
화살표, 스페이스, 엔터 등등의 문자가 아닌 키들을 Virtual Key라고 한다.
(ex)
VK_RETURN: Enter키
VK_F1: F1키
VK_LBUTTON: 왼쪽 마우스 버튼
< 해보기 >
//수정해야 할 메소드들
CPlayer::Update();
CGameManager::Update();
입력을 받으면(WASD 또는 방향키 중 원하는 대로) CPlayer의 위치를 이동시켜 보자.
위의 두 메소드만 수정하면 구현할 수 있다.

GameFrameworkStepbyStep_11_PlayerMove.zip
0.92MB