이번에는 입력을 담당하는 Input Class를 살펴볼 것이다.

Input Class를 만든다.


(Input의 private)


입력에 관한 변수들이다.

public의 함수들을 볼 것이다.



(생성자)


생성자에서는 기초적인 초기화 작업을 진행한다.
키가 눌렸는지에 대한 배열 초기화와 버퍼 초기화, 마우스 정보 변수 초기화를 진행한다.
(* 컨트롤러에 대한 것은 Xbox 컨트롤러를 위한 것이다. 책에 포함되어있는 내용이지만, 나는 Xbox에 관한 설명은 건너 뛸 것이다.)



(소멸자)


Input 클래스가 삭제 될 때 마우스가 캡쳐상태라면 캡쳐 상태를 해제 해준다.

다음은 Input 클래스의 초기화 함수이다.



(초기화 함수)


초기화 과정에서 마우스를 캡쳐 상태로 설정시켜준다.
그리고 그 아래의 코드들은 고정밀 마우스 데이터를 가져오는 작업이다.

이제부터 입력에 관한 함수들이 나온다.


(키 눌림 안눌림)


키가 눌렸는지 안눌렸는지 체크하는 함수이다.
keyDown에서는 키가 눌렸으면 keysDown과 keysPressed 배열의 해당 index에 가서 true로 만들어준다. keysDown은 현재 눌렸는지 확인하는 것이다. 그리고 keyPressed는 현재 게임 루프가 실행되는 동안 눌렸었는지를 체크하기 위한 배열이다.

  따라서 keyUp함수에서는 keysDown만 false로 해준다.



(키 입력)


키 입력에 관한 함수이다. 




(키 체크)


isKeyDown은 현재 키가 눌렸는지 확인하는 함수이고 keysDown 배열을 확인한다.
wasKeyPressed는 현재 루프동안 키가 눌린 경험이 있는지 체크하므로 keysPressed 배열을 확인한다.
그리고 어떤 키든 눌렸었는지 체크하기 위한 함수 anyKeyPressed 함수도 추가해주었다.



(입력 초기화)


입력에 대한 초기화 함수이다. 초기화가 위에서 만든 initialize 함수와 다르다. 단순히 입력에 대한 초기화를 하는 것이다. 

  다음은 입력 중 마우스입력에 관한 함수들이다.



(마우스 입력)


mouseIn 함수로 마우스의 좌표를 가져오고, mouseRawIn을 사용해 마우스의 변화량을 가져온다.
mouseWheelIn으로 마우스 휠 정보를 가져온다.


(* 참조 - 2D 게임 프로그래밍, 찰스 켈리)


+ Recent posts