스크래치 게임 만들기 탱크 1편

옛날 탱크 게임하던 걸 생각해서 스크래치로 탱크 게임을 만들기 시작했는데요. 아무리 쉬운 언어라고는 하지만 게임을 만드는게 정말 쉬운 일은 아니네요.



하나 하나 천천히 만들어 보겠습니다. 이번 시간은 스크래치 게임만들기 탱크 1편으로 탱크를 움직이고 포를 발사하는 것을 만들어 보겠습니다.


탱크, 포탄 스프라이트 만들기

먼저 사용할 탱크와 포탄, 그리고 적탱크를 직접 만들어 보도록 하겠습니다. 붓 모양의 아이콘을 클릭하여 [새 스프라이트]를 만들어 주는데요 [모양]에서 그림 그리기 툴을 이용하여 탱크 모양을 만들어 줍니다. 이 때 포탄이 나가는 방향은 오른쪽으로 만들어 주세요


그리고 포탄은 저장소에 있는 스프라이트 중 Ball을 가져와 배치를 시켜 놓습니다. 그리고 적 탱크는 아까 만든 탱크를 복사하여 이름을 [적탱크]라고 변경해 줍니다.



탱크 스프라이트 코딩하기

이제 탱크 스프라이트에 코딩을 해보겠습니다. 탱크의 기능을 먼저 생각해야 하는데요.

1. 방향키를 눌렀을 때 해당 방향으로 이동을 해야한다.

2. 방향키를 눌렀을 때 포신은 그 방향으로 같이 이동해야 한다.

3. 스페이스 바를 눌렀을 때 포탄(Ball)이 발사 되야한다.


위에서 정리한 것을 하나하나 정리해 보도록 하겠습니다.


1번과 2번 방향을 이동하는 부분의 코드 입니다. 이동하는 코드는 저와 다를 수 도 있는데요. 제가 만든 것이 꼭 정답은 아닙니다. 


제가 만든 탱크의 이동 방법은 포신을 기준으로 위쪽은 0도 방향을 기준으로 작성하였습니다.


3번은 [방송하기]를 이용하여 신호를 주었을 때 Ball에서 프로그램이 동작하도록 만들었습니다. 그리고 Ball이 바로 발사되는 것을 막기 위해 0.2초 기다리는 시간을 주었습니다. 



아래는 전체 코드입니다.



포탄(Ball) 스프라이트 코딩하기

탱크에서 스페이스바를 눌렀을 경우 발사 메세지를 받아서 처리하는 코드를 만들어 보겠습니다. 아까와 마찬가지로 포탄 기능을 생각해야 하는데 포탄이 필요한 조건 알아보겠습니다.

1. 포탄은 항상 탱크의 방향과 같은 방향으로 발사 되어야 한다.

2. 한번 발사한 포탄은 탱크가 움직이더라도 계속해서 처음 방향으로 나가야한다.

3. 벽에 닿거나 적탱크에 닿으면 포탄은 사라져야합니다.

  - 이부분이 가장 중요한 것인데요. 포탄은 프로그램상 포탄은 삭제되어야합니다. 안그러면  계속 쌓이게 되거든요.


포탄(Ball)은 스페이스 바를 눌으면 발사가 되어야 하는데요. 메세지를 받아서 본인 자신을 복제합니다.



그리고 복제가 된 포탄은 항상 탱크가 있는 좌표에서 발사가 되어야 하므로 X좌표와 Y좌표를 탱크가 있는 좌표로 맞춰줍니다.



2번 처럼 움직이여야 함으로 포탄의 방향도 탱크의 방향으로 맞춰 줍니다.



3번 코드를 만들어 주는데요. 어떻게 보면 이 코드가 가장 중요한 것 같습니다. 벽이나 적탱크에 닿지 않으면 계속해서 움직이도록 만들어 주는 것이니까요. 그리고 마지막에 복제본을 삭제해야 샇이지가 않거든요. 


포탄(Ball) 전체 코드입니다.



현재까지 만들어진 동작영상



반응형

댓글

Designed by JB FACTORY