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