인디 게임 강좌

전체보기

모바일 상단 메뉴

본문 페이지

[게임메이커] 처음 만나는 GMS2 // 9. 슈팅게임 제작 4

Zpink
조회: 5691
2018-05-14 21:06:54



여기까지 우리는 어느정도 게임스러운 물건을 탄생시킬 수 있었습니다.


하지만 보기좋은 떡이 먹기도 더 좋은 법이지요. 적과 플레이어는 모두 만들어졌지만 아직까지 배경은 그냥 시커먼 색이기 때문에 이번에는 배경을 꾸밀 것입니다. 또한 효과음을 집어넣으면 더욱 그럴싸한 게임이 되므로, 사운드도 넣어보도록 하겠습니다.



https://drive.google.com/open?id=1QfGrM-ebuoJ47j89rG0NtNyjKfkp3PY_

우선 여기에서 사운드 파일을 다운로드 받으세요!






새 스프라이트를 만들고, 앞서 사용하였던 스프라이트 묶음에서 back_1 파일을 불러오기합니다. 게임메이커 스튜디오 이전버전을 쓰시던 분이라면 여기서 좀 의문이 생길것입니다. 배경화면은 원래 background라는 항목에서 따로 다루던 것이 아니었나? 하는 점을 말이지요. 하지만 이번 게임메이커 스튜디오 2에서는 배경과 스프라이트를 따로 구분하지 않습니다. 배경을 스프라이트로 불러온 후, 룸의 Background 레이어에 삽입해주는 식으로 처리합니다.


불러온 이미지의 이름은 bgGround로 하겠습니다.







배경을 불러오셨다면 이제 룸에 삽입해보겠습니다. 룸의 왼쪽 메뉴중 Background 레이어를 클릭합니다. 그리고 배경화면 선택 버튼을 클릭하여 방금전에 추가하였던 bgGround 이미지를 클릭합니다. 이어서 이 이미지를 윈도우즈 바탕화면의 바둑판형 배열처럼 바닥에 타일을 깔듯이 넣을 것이므로 Horizontal Tile, Vertical Tile에 모두 체크합니다.


이제 바닥에 깔린 배경화면을 보실 수 있습니다.






​하지만 평평하고 밋밋한 배경만으로는 뭔가 부족합니다. 그래서 이번에는 타일을 이용해 좀 더 세밀하게 꾸며볼 것입니다.  새 스프라이트를 만드신 후 스프라이트 묶음에서 tileset 파일을 불러옵니다. 이 스프라이트의 이름은 bgTile 로 지었습니다.



타일을 사용하기 위해서는 단순히 스프라이트를 불러오는 것으로 끝나지 않고 추가적인 작업이 필요합니다. 오른쪽 메뉴의 Tile 폴더에 마우스 우클릭한 후 Create를 클릭하여 새 타일을 생성합니다.


​ 




타일 속성 화면이 나왔습니다. 이제 새 타일에 사용할 스프라이트로 방금전에 만든 bgTile을 불러옵니다.




​화면 왼쪽의 타일셋 속성 화면에서 타일의 크기를 지정할 수 있습니다. 이 타일은 32*32 사이즈이므로 Tile Width, Tile Height는 각각 32, 32로 입력해줍니다.





이제 이렇게 만든 타일을 룸에 넣을 것인데, 룸에 타일을 삽입하기 위해서는 타일 레이어를 생성해야합니다. 룸의 레이어 항목 아래에 위치한 Create New Tile Layer 버튼을 클릭하여 타일 레이어를 생성합니다.



이제 이 레이어에서 사용할 타일셋을 선택합니다. No Tileset 이라 적혀진 버튼을 클릭하신 후 방금전에 만든 tileset_0을 불러옵니다.



타일을 불러왔다면 오른쪽에 방금 나눈 타일들이 표시됩니다. 이것을 클릭하여 룸에 배치해봅니다.




테스트해보았습니다. 제법 그럴싸한 모습입니다.







​다음으로 게임에 소리를 삽입해보겠습니다. 오른쪽 리소스 메뉴의 Sounds 폴더에 마우스 오른쪽버튼을 클릭하신 후 Create를 클릭해 새 사운드를 만듭니다.



​이름 옆에 있는 ... 버튼을 클릭하시면 사운드를 불러오실 수 있습니다. 사운드 파일은 이 게시물에 첨부하였으니 그것을 사용하시면 됩니다. 압축을 푸시면 이렇게 4개가 있는 것을 확인하실 수 있습니다.




사운드 리소스들을 모두 불러옵니다. 이름은 파일명과 동일하게 입력하였습니다.

Bgm - 배경음악입니다.

sndPlayerHit  - 플레이어가 맞았을 때의 소리입니다

sndMonsterDead - 적이 사망하였을 때 나는 소리입니다.

sndGunshot - 총을 발사하였을 때의 소리입니다.


​적 오브젝트 objEnemy의 총알 오브젝트와의 충돌 이벤트에 새로운 코드 하나를 삽입하였습니다.

audio_play_sound(sndMonsterDead,0,false);

audio_play_sound는 소리를 재생시키는 함수입니다. 괄호 안에 들어가는 인자는 각각 소리 이름, 재생우선순위, 반복 여부 입니다. 적이 총알에 맞았을 때인 경우이므로 적이 사망할 때의 효과음을 재생하며, 효과음은 반복재생할 필요가 없으니 false로 그대로 두었습니다.





플레이어 오브젝트 objPlayer의 Step 이벤트에 담겨진 코드 중 총알 생성과 관련된 부분에도 소리 재생 코드를 삽입합니다.


audio_play_sound(sndGunshot,0,false);

마우스 왼쪽 버튼을 클릭하여 총알을 발사하면 효과음 sndGunshot 효과음도 같이 재생됩니다.





배경음은 게임이 시작하면 바로 들릴 수 있도록 만들것입니다. 화면에 UI를 출력하는 오브젝트 objControl의 Create 이벤트에 소리를 재생하는 함수를 입력합니다.

audio_play_sound(sndBgm,0,true);

이번에는 반복여부에 true를 입력하였습니다. 배경음은 끝나지 않고 계속 재생될 것입니다.





마지막으로 플레이어가 적에게 닿았을 때에도 효과음을 넣습니다. 

audio_play_sound(sndPlayerHit,0,false);

그리고 ​체력이 0 이하가 되었을 때에는 배경음의 재생을 중단시키도록 아래의 코드를 추가합니다.

audio_stop_sound(sndBgm);

audio_stop_sound(소리 리소스) 는 괄호 안에 넣은 소리를 멈추게 합니다.






본격적으로 소리가 잘 나는지 확인하기 전에, 조금 더 게임의 몰입감을 높이기 위해 마우스 커서를 바꿔보겠습니다. 새 스프라이트를 추가합니다. spr_mousepoint 를 불러오기 한 후, 이름은 sprCur로 짓습니다.



스프라이트의 정 가운데가 커서의 마우스 끝이 되게 하기 위해 origin을 24*24로 조정합니다.



objControl 오브젝트의 Create 이벤트에 코드 하나를 추가합니다.


window_set_cursor(cr_none);

cursor_sprite = sprCur;


window_set_cursor(값)은 마우스 커서를 괄호 안에 적혀진 대로 변경합니다. cr_none은 커서를 화면에서 보이지 않게 만듭니다. 우리는 원래 커서를 화면상에서 없애버린 대신 새 커서를 적용할 것입니다. cursor_sprite의 값을 원하는 스프라이트로 지정하여 그 스프라이트를 커서로 사용할 수 있습니다.




테스트해보았습니다. 정상적으로 만들어졌다면 사운드가 제대로 재생되고, 스프라이트가 커서를 대체할 것입니다.




Lv1 Zpink

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징