우리는 다음과 같이 키 페드를 다음과 설정할 수 있다.

 

위 Function은 매 프레임마다 불리울 수 있다.

 

하지만 많은 게임들이 유저에게 키 설정을 제공하기 때문에 위와 같이 코딩한다면 키 설정을 제공 하기 어렵다.

 

그래서

 

아래와 같이 Interface를 클래스를 사용할 수 있다.

그리고 이것을 Command 패턴이라 부른다.

 

그 다음

Subclass를 만들어 준다.

 

 

우리의 InputHandler에서 우리는 각 커맨드 버튼 객체에 포인트를 저장 할 수 있다.

 

이제, 우리의 HandleInput function은 다음과 같다.

NULL 채크는 각자의 몫이다.

 

 

하지만

 

위의 방식은 어느정도의 제약이 있을 수 있다.

 

위는 오직 플레이어의 움직이만 제어할 수 있다.

만약, 플레이어 외에 적들이라던지 다른 객체의 움직임을 위해서는 다음과 같이 수정한다.

 

단순히 함수를 부르는것 대신, 우리가 움직이기 원하는 객체를 넣는다.

 

GameActor를 매개변수로 넣어서 제어한다.

 

 

 

이제는, 우리의 HandlerInput()은 Command를 리턴한다.

 

그다음, 우리는 Command를 실행시키는 코드가 필요한다.

 

 

이제 우리는 플레이어가 어떤 Actor든지 넣을 Actor를 변경시키으로써 제어할 수 있다.

 

 

 

 

출저: Game Programming Patters, Robert Nystrom

 

 

+ Recent posts