Team Reinless : Game maker

오픈소스 게임만들기:지구 최후의 날 – 4

January 28th, 2010 at 18:17

안녕하세요.

이번에는 플레이어가 조작할 유닛과 간단한 조작 인터페이스를 만들어 보겠습니다.

소스코드는 [이쪽]에서 받으실 수 있습니다.


조작 인터페이스에 대해서는 앞서 말씀드린 바와 같이

화면에 버튼을 만들어 붙이도록 하겠습니다.

버튼의 세밀한 크기나 디자인은 다음에 하도록 하고

지금은 여기에 이런 식으로 버튼이 있을거다 라고 영역을 잡아놓는 정도만 하죠.

또 마우스 클릭으로는 이동하며 쏘기 같은 것이 불가능하기에

마우스 이벤트는 받지 않도록 하겠습니다.

그냥 키보드로 조작하죠.


조작 인터페이스는 Game클래스에 직접 그리도록 하겠습니다.

public void paint(Graphics g)안에 //controller interfaces라고 된 부분입니다.

뭐 특별한 내용은 없네요.


다음은 플레이어가 조작할 유닛입니다.

Player라는 클래스가 추가 되었는데요. 내용은 간단합니다.

moveLeft() 왼쪽으로 움직이기

moveRight() 오른쪽으로 움직이기

paint(Graphics g) 화면에 그리기

정도가 전부네요.

물론 앞으로 무기 발사 라든지 부딛쳐서 움직이지 못함 등의 내용이 들어가겠죠.

일단은 여기까지 하고 게임 화면이랑 합쳐 보겠습니다.


플레이어가 좌우로 움직이기 위해 키 입력을 받아야겠네요.

public void keyPressed(KeyEvent e)와

public void keyReleased(KeyEvent e)에

키보드의 좌/우 키가 눌리거나 눌리지 않았을 때의 상태를

변수 bLeftPressed와 bRightPressed에 세팅할게요.

그 다음은 public void run()에서 두 boolean변수의 상태를 보고

if(bLeftPressed) player.moveLeft(); 왼쪽 키가 눌렸으면 왼쪽으로 이동

if(bRightPressed) player.moveRight(); 오른쪽 키가 눌렸으면 오른쪽으로 이동을 넣겠습니다.

마지막으로 public void paint(Graphics g)에 player.paint(g);를 추가해서

플레이어 유닛을 화면에 그리면 끝!


실행을 시켜봅시다~

osp003

키 입력을 받아 좌우로 움직이는 모습을 보니 뭔가 좀 되는 것 같네요.

그냥 이대로 피하기 게임이나 받아먹기 게임을 만들어 버릴까요?

으하하하하하!


다음에는 총을 발사하도록 만들어 보겠습니다.




Tags: , , , , , , , , ,

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>