본문 바로가기

GMStudio/GMS 강좌

게임메이커 스튜디오 기초강좌 :: 슈팅게임 제작 [4] 적 비행기 만들기 (완성)

 

<4> 적 비행기 만들기

 

이번에는 적 비행기를 만들겁니다.

 

일단 적 비행기로 사용할 스프라이트를 하나 준비해주세요.

 

 

[▲ 적 비행기 이미지]

위 이미지 사용하셔도 됩니다. 색상이랑 방향만 바꾼거지만..

 

오브젝트를 새로 만들어서 적 비행기 오브젝트를 설계합니다. 적 비행기 스프라이트를 씌어주고 이름도 지어주세요.

 

첫번째로 설계할 내용은 주인공 비행기의 총알에 충돌했을때 파괴되도록 하는 것.

충돌여부를 확인해주는 이벤트를 추가해줄 겁니다.

 

[Collision] 이벤트에서 미사일 오브젝트를 선택해줍니다.

Collision(충돌) 이벤트는 선택한 오브젝트를 갖고있는(참고하는) 인스턴스와 충돌했을경우 해당 액션영역이 실행됩니다.

 

충돌했을때 이펙트를 넣어야죠. [draw]탭에 있는 이펙트생성(Create Effect) 액션을 넣어주세요.

 


----------[Create Effect]---------

type : 이펙트의 타입을 선택합니다. (폭발, 링, 원, 불꽃, 연기, 별 등.. 선택가능)

x : 이펙트가 발생할 x 좌표

y : 이펙트가 발생할 y 좌표

size : 이펙트의 크기

color : 이펙트의 색상

where : 이펙트가 오브젝트 위에서 발생할것인지 오브젝트 뒤에서 발생할건지 선택합니다.

---------------------------------

 

이펙트가 발생한 후, 인스턴스도 제거해야합니다. 인스턴스 제거 액션도 추가해줍니다.

 

룸에 방금 설계한 적 비행기 오브젝트를 룸에 배치해줍니다.

 

이펙트 발생과 함께 적 비행기가 사라집니다. 근데 자세히보면 총알이 적 비행기를 뚫고 지나갑니다.

 

총알도 비행기와 충돌시 사라지도록 합시다.

 

[Collision] 이벤트에서 적 비행기 오브젝트를 선택.

 

충돌했을때 제거되도록 인스턴스 제거 액션을 넣어줍니다.

 

이렇게 총알 오브젝트 설계를 수정을 끝내고...

 

생각해보니 적인데 공격을 안합니다. 이제 적 비행기에 공격기능을 넣어보도록 합시다.

 적 비행기가 발사하는 미사일 스프라이트를 준비해주세요.

 

[▲ 적 비행기 미사일 이미지]

이거 사용하셔도 됩니다. 마찬가지로 색상과 방향만 바꾸었지만..

 

적 미사일의 오브젝트도 하나 새로 만들어줍니다. 스프라이트도 씌어주고, 이름도 지어주세요.

 

이벤트를 추가해줍니다.

 

적 미사일도 주인공 비행기와 충돌시 제거되도록 할겁니다.

[Collision] 이벤트에서 주인공 비행기 오브젝트를 선택해줍니다.

 

인스턴스 제거 액션을 이벤트에 추가합니다.

 

적 미사일 오브젝트의 설계는 여기서 끝내고.. 이제 알람이벤트를 이용해서 적 비행기가 일정시간마다 총알 인스턴스를 생성하도록 합시다.

적 비행기 오브젝트를 열어 이벤트를 추가해줍니다.

 

[Create] 이벤트를 추가.

 

알람 이벤트를 넣어줍니다.

 

적 비행기가 미사일을 발사하는 간격으로 45스텝 정도로 설정하였습니다.

 

이제 적 비행기 인스턴스가 생성된 후, 45 스텝후 alarm 0 이벤트가 발생할겁니다.  

 

알람 0(alarm 0) 이벤트를 추가해줍니다.

 

 

이동 인스턴스 생성 액션을 넣어줍니다.

 

 위와같이 설정합니다.

참고로 direction은 우리가 알고있는 각도의 개념과 같이 0 부터 360 까지의 값을 가지고 있으며, 270은 아래를 향합니다.

 

 자 미사일을 생성한 후, 다시 알람을 설정해야합니다. 그래야 계속해서 알람이벤트가 발생하면서 미사일이 주기적으로 생성되니깐요!

 

알람 액션을 추가.

 

이렇게 해두면 45스텝마다 알람 0 이벤트가 발생됩니다.

 

이제 적 비행기 오브젝트 말고, 주인공 비행기 오브젝를 열어주신 후 이벤트를 추가합니다.

 

[Collision] 이벤트에서 적 비행기의 미사일 오브젝트를 선택.

 

주인공 비행기가 적 미사일과 충돌해서 격추됬을경우에... 게임을 재시작하도록

[main2] 탭에있는 Restart Game (게임 재시작) 액션을 추가.

 

이제 주인공 비행기 인스턴스가 적 비행기가 발사한 총알과 충돌하면 파괴됩니다.

 

게임을 실행해보면 제법 그럴사한 모습이 나오네요.

 

이것으로 제가 준비한 슈팅게임 제작강좌는 모두 끝났습니다. 대충 갤러그(?) 비슷한 모습은 나왔네요.

여러분이 어떤모습의 슈팅게임을 기대하셨는지 모르겠지만.. 사실 아직 게임이라고 하기엔 부족한 모습이 많습니다.

그 부족한 모습은 여러분들이 채워나가면 좋겠네요.

 

 


지금보니깐 적 총알 인스턴스가 룸 밖으로 나가면 사라지지 않네요! "슈팅게임 제작[3] 문제점 해결" 강좌에서 수정했던 것 처럼

적 총알 오브젝트를 수정해서 룸 밖으로 나갈 시 인스턴스가 제거되도록 수정하시면 될것같습니다.

마지막으로 강좌에 사용된 프로젝트 파일과 실행파일 첨부합니다.

 

 슈팅게임 프로젝트 예제파일

SimpleSooting.gmx.zip

 

 

슈팅게임 실행파일

SimpleSooting.exe