게임메이커 강좌

profile
조회 수 4191 추천 수 0 댓글 0
Atachment
첨부 '61'




bandicam 2014-11-14 14-48-01-675.png


안녕하세요, 이번 게임메이커 스튜디오 강좌를 쓰게된 TheEK 입니다


저번 강좌의 지식을 바탕으로, 이번엔 간단한 종스크롤 슈팅게임을 한 번 만들어보도록 하겠습니다


한 번에 다 올리기는 좀 힘드니 시리즈별로 나눠서 올리도록 하겠습니다.

본 강좌의 저작권은 Shaun Spalding 님께 있음을 참고하시길 바랍니다. https://www.youtube.com/channel/UCn7FE3Tx391g1tWPv-1tv7Q




자, 이제 본격적인 강좌에 들어가겠습니다



이번 강좌에선 플레이어가 컨트롤 하는 기체가, 플레이어가 누르는 방향키에 반응을하여 다 매끄럽게 좌우로 움직이게끔 하도록 만들겠습니다


우선 맨 첫번째 화면처럼 간단한 기체 오브젝트를 만들어주세요

※오브젝트를 만드는 법을 모르시는분은 지난 강좌를 참조해주세요 http://avangs.info/study_gamemaker/1392983







bandicam 2014-11-14 14-48-07-675.png



강좌 맨 첫번째 스크린샷에 나와있는 오브젝트를 이용하여 움직이게끔 만들어보겠습니다


해당 오브젝트를 클릭해주시면 위와 같은 화면이 나옵니다


저 화면을 모르시는 분들은 역시 전 강좌를 보시면 알게되실겁니다









bandicam 2014-11-14 14-48-40-326.png


오브젝트를 움직이게끔 하기위해 필수 요소인 이벤트를 먼저 만들도록 하겠습니다






bandicam 2014-11-14 14-48-54-739.png


우선 키보드 왼쪽방향키에 반응하도록 만들겠습니다. 위 화면과 똑같이 해주시면 됩니다.







bandicam 2014-11-14 14-49-10-140.png


위와 같이 이벤트가 하나 추가되었습니다 (만세!)






bandicam 2014-11-14 14-49-29-360.png


이제 액션을 삽입해야할텐데요, 오른쪽에 있는 Jump 탭에서 하나 드래그를 할겁니다





bandicam 2014-11-14 14-49-33-288.png


커서 아래에 있는 아이콘 보이시죠? 저걸 그대로 왼쪽 창에 드래그하시면 됩니다






bandicam 2014-11-14 14-49-43-125.png



그렇게하면 이런 창이 뜰텐데요




bandicam 2014-11-14 14-49-56-990.png


전 강좌와 같이 먼저 Relative 박스에 체크를 하셔야합니다


안그러면 오브젝트가 방 위치에 비례해서 움직이기때문에 에러가 날 수 있습니다 (전 강좌에서도 설명 되어있습니다)





bandicam 2014-11-14 14-50-36-080.png


왼쪽으로 움직여야하기 때문에 -3 을 쓰도록 하겠습니다.

간단하게 설명 드리자면, 오브젝트의 x 축을 기점으로(Relative) -3 픽셀 정도 움직인다는 뜻입니다


간단한 X, Y 그래프를 상상하시면 편하실겁니다








bandicam 2014-11-14 14-50-40-008.png


이렇게 왼쪽방향키 이동을 완성했습니다





bandicam 2014-11-14 14-50-42-852.png



이번엔 이어서 오른쪽방향키를 만들어보겠습니다






bandicam 2014-11-14 14-50-47-003.png


이렇게 이벤트를 만들고






bandicam 2014-11-14 14-50-50-166.png


아까와 같은 액션을 Jump 탭에서 드래그하여 넣어줍니다








bandicam 2014-11-14 14-50-52-459.png


역시 Relative 박스는 체크해주시길 바랍니다







bandicam 2014-11-14 14-50-54-866.png


잘 안보이실 것 같지만, +3 이라고 썼습니다

3이나 +3이나 똑같으니 둘 중에 아무거나 써주셔도 됩니다









bandicam 2014-11-14 14-51-07-754.png



이제 테스트플레이를 해보면 ...






bandicam 2014-11-14 14-51-11-353.png


왼쪽 눌러보고






bandicam 2014-11-14 14-51-12-991.png



오른쪽 눌러보고





bandicam 2014-11-14 14-51-33-516.png



정상적으로 잘 작동하는걸 볼 수 있습니다 (유후!)



사실 오브젝트를 방향키에 맞춰 움직이게 하는 방법은 여러가지 있지만, 이 같은 경우에는 좀 뻑뻑한 무빙의 감이 없지않아 있습니다




다른 방법을 하나 더 보여드리겠습니다







bandicam 2014-11-14 14-51-40-726.png


이벤트를 전부 새로 만들었습니다


전에 있던 액션들도 전부 지웠습니다


이번엔 다른 방법으로 만들어보겠습니다





bandicam 2014-11-14 14-51-46-076.png


오른쪽 액션창에서 Move 탭을 보시면, 초록색 다방향 모양의 아이콘이 보이실겁니다


드래그 해서 액션창에 넣겠습니다







bandicam 2014-11-14 14-51-52-846.png



9개의 방향중에서 왼쪽을 선택하고, Speed 에는 3을 입력해주세요. 사실 Speed는 어떤 값을 넣던 상관없습니다. 단지 속도라는 개념이기때문에 값이 높을수록 속력이 빨라집니다






bandicam 2014-11-14 14-51-58-849.png


오른쪽 방향키도 마찬가지로 똑같이 해주시면 됩니다. Speed 에는 3이라는 값을 넣어주시면 됩니다


*이번엔 Relative 박스에 체크를 하지 않습니다*






bandicam 2014-11-14 14-52-59-024.png


아직 다 끝나지 않았습니다. 저 상태로 테스트 게임을 실행하면 3이라는 속도로 끝없이 달리기때문에 감속을 넣어야합니다


이벤트를 하나 더 만들도록 하겠습니다







bandicam 2014-11-14 14-53-01-427.png


이번엔 Create 아이콘을 눌러주세요







bandicam 2014-11-14 14-53-05-903.png


이렇게 이벤트를 만들어 주신 후에, 마우스 커서 아래에 있는 두개의 화살표가 오른쪽으로 향해있는 아이콘을 드래그해서 넣어주세요


저 아이콘은 Friction 이라고 불리우는 녀석인데, 쉽게 말하면 마찰입니다

마찰로 인하여 컨트롤하고 있는 오브젝트에 감속을 줍니다





bandicam 2014-11-14 14-53-09-945.png


마찰은 현제 룸에 있는 프레임에 비례하여 감속을 주기 때문에, 대부분 소수점 값을 넣습니다








bandicam 2014-11-14 14-53-19-771.png


0.05 라는 값을 넣겠습니다


저것보다 조금 더 많이, 혹은 적게 적으실 수도 있습니다. 개인 취향입니다.











bandicam 2014-11-14 14-54-01-161.png


확인 버튼을 누르고 기본화면으로 돌아가겠습니다












bandicam 2014-11-14 14-54-08-040.png


이제 테스트 플레이를 할 차례가 됬군요








bandicam 2014-11-14 14-54-11-102.png


테스트 플레이를 실행시키겠습니다











bandicam 2014-11-14 14-54-13-937.png


왼쪽으로 움직이고











bandicam 2014-11-14 14-54-15-460.png



오른쪽으로 움직이고






보셨다싶이 Jump 액션과는 많이 다르다는걸 느끼실 수 있습니다.

간단하게 정리하자면, Jump 액션의 경우는 말 그대로 점프하는 개념과 비슷합니다.


3 픽셀을 Jump 해서 움직인다고 한다면, 플레이어가 키보드 한 번 짧게 누르는것에 오브젝트는 3픽셀을 그대로 움직이게 됩니다.


반대로 Fixed Movement는 3픽셀의 속도로 움직이는 개념이기때문에 감속이나 가속이 없다면 영원히 3픽셀의 속도로 오브젝트가 움직입니다.





감속을 줬으니 이번엔 오브젝트에 가속을 주도록 해보겠습니다


가속을 주는것에 있어서 주의할 것은, 가속을 주되, 오브젝트가 일정 속도를 벗어나지 않게 하는것이 중요합니다.


안그러면 오브젝트가 가속을 받으면서 맵 밖으로 나가는 골치아픈 일이 생기기때문이죠










bandicam 2014-11-14 14-55-07-227.png


이벤트 창으로 돌아가서 현재 있는 액션에 잠깐 손을 좀 건드리겠습니다










bandicam 2014-11-14 14-55-10-833.png


이번엔 Relative 박스에 체크를 해주시면 되겠습니다






bandicam 2014-11-14 14-55-35-733.png


확인을 누르고 다른 방향키도 똑같이 체크를 해주시면 되겠습니다











bandicam 2014-11-14 14-56-04-780.png


왼쪽과 오른쪽 방향키 액션에 Relative 박스가 체크되어있다는 가정하에, 이벤트를 하나 더 만들겠습니다










bandicam 2014-11-14 14-56-07-511.png


Step 이벤트를 만들도록 하겠습니다.


Step 이벤트의 경우엔 보통 조건없이 오브젝트에 발동하는 트리거라고 보시면 편하실겁니다












bandicam 2014-11-14 14-56-14-059.png


이렇게 스텝이벤트를 만들었습니다










bandicam 2014-11-14 14-56-24-535.png


이번엔 새로운 액션인 Variable (변수) 액션을 넣어보도록 하겠습니다


마우스 커서 아래에 있는 아이콘을 드래그해서 넣어주시면 되겠습니다










bandicam 2014-11-14 14-56-26-402.png


위와같은 창이 뜰겁니다








bandicam 2014-11-14 14-56-55-112.png


Variable 에는 Speed 라는 단어를 입력해주시고


Value 에는 0이라는 값을 입력해주시고


Operation에는 equal to 를 넣어주시면 됩니다



이 액션에 대해서 조금 더 설명을 드리자면, 스크립트나 다른 언어를 만져보신 분들이라면 "If" 라는 단어를 많이 아실겁니다


요악하자면, "만약 Speed라는 변수의 값이 0 이라면," 과 같습니다



무슨뜻이냐면, "만약 오브젝트속도6픽셀같거나이상이라면" 이라는 말과 같습니다.


이렇게 조건을 두고 오브젝트가 행동하는 것에 제한을 두는거라고 보시면 됩니다








bandicam 2014-11-14 14-57-08-980.png


이렇게 오브젝트가 행동할 수 있는 반경에 제한을 두는 스크립트를 완성시켰습니다











bandicam 2014-11-14 14-57-15-429.png


그러나 조건만 떡 두고 무엇을 해야하는지에 대한 답이 없다면 그건 완성된 문장이 아니겠죠?


"만약 네가 과자를 먹는다면 ... " 하고 문장이 끝나는 것과 같습니다


커서 아래에 있는 아이콘을 액션창에 드래그하여 넣어주시면 나머지 문장을 끝낼 수 있습니다










bandicam 2014-11-14 14-57-22-303.png


이번 액션은 변수의 값을 정하는 액션입니다


위와 같이 Variable 란에는 Speed를, Value 에는 6이라는 값을 넣어주세요


요약하자면, "Speed라는 변수의 값을 6으로 한다" 라는 말과 같습니다


무슨뜻이냐면, "오브젝트속도6으로 만든다" 와 같은 뜻입니다







bandicam 2014-11-14 14-57-37-160.png


확인을 누르시고 기본화면으로 나와주세요



문장을 합쳐보면, "만약 오브젝트 속도 6픽셀 같거나  이상이라면, 오브젝트 속도 6으로 만든다" 로 됩니다


이렇게 액션을 만들면, 오브젝트의 속도가 6픽셀, 혹은 이상이 되면 속도를 6으로 고정시키는 액션이 완성됩니다


이제 오브젝트가 무한으로 가속을 받을 일은 없겠군요 ... (휴 ...)










bandicam 2014-11-14 14-57-53-974.png


오브젝트가 가속을 받고있기 때문에 마찰의 힘을 좀 더 올릴 필요가 있습니다


아까 만들었던 Create 이벤트에서 Friction 액션의 값을 0.2로 조절하겠습니다












bandicam 2014-11-14 14-57-59-107.png


이제 테스트를 해보면 되겠군요












bandicam 2014-11-14 14-58-09-260.png


오른쪽으로 움직여보고








bandicam 2014-11-14 14-58-11-667.png


왼쪽으로 움직여보고!





사진이라 잘 안나와있지만, 키보드 방향키를 누르고 있을땐 가속을 받으면서 6픽셀의 속도를 유지하다가, 방향키를 때면 마찰에 의해 서서히 감속을 받으면서 정지하는 것을 볼 수 있습니다.






이상, 정말 답 없는 초보들을 위한 게임메이커 스튜디오 - 오브젝트 이동 강좌였습니다








Who's TheEK

profile

< 제작중인 게임 >

현재 여러가지 고민중


(본인은 현재 미국 캘리포니아 로스엔젤레스 에서 거주中)

http://blog.daum.net/hoshizora9508

List of Articles
분류 제목 글쓴이 날짜 조회 수
기초 강좌 풀스크린 켜기 file 피자보이 2016.12.24 208
스크립트 [GML] 강좌 정리 PDF 1 file 바람냥 2016.06.04 822
스크립트 불친절한 GML 모든 문법 (겜스 기반 작성) WoKet 2015.02.24 2118
기초 강좌 답없는 초보들을 위한 게임메이커 스튜디오 입문 강좌 - 오브젝트 이동 강좌 file TheEK 2014.11.15 4191
기초 강좌 답없는 초보들을 위한 게임메이커 스튜디오 입문 강좌 - 기본 튜토리얼 2부 8 file TheEK 2014.10.28 5990
기초 강좌 답없는 초보들을 위한 게임메이커 스튜디오 입문 강좌 - 기본 튜토리얼 1부 2 file TheEK 2014.10.26 12429
스크립트 [GML Script] execute_script_string 짭뿌C 2014.03.18 1631
기초 강좌 [GML] 03: 특정 코드를 반복해봐! 1 짭뿌C 2013.12.08 2304
기초 강좌 [GML] 02: ..조건문?? 3 짭뿌C 2013.12.07 2090
기초 강좌 [GML] 01: 변수를 알아봐요! 2 짭뿌C 2013.12.07 2824
기초 강좌 [고전 풍] 04: 섬세한 손길 2 file 짭뿌C 2013.10.28 2801
기초 강좌 강좌의 변동사항 안내 3 짭뿌C 2013.10.13 1650
기초 강좌 [고전 풍] 03: 상세한 설정 2 file 짭뿌C 2013.10.08 2441
기초 강좌 [고전 풍] 02: 고전 게임 풍 예제 살펴보기 2 짭뿌C 2013.10.08 2815
기초 강좌 [고전 풍] 01: 고전 게임 풍을 만들 준비 3 file 짭뿌C 2013.10.08 4342
기타 [게임메이커강좌-기타]운석 피하기게임 만들기 2 file 아방스 2013.06.28 3721
기타 [게임메이커강좌-기타]짝맞추기 게임 만들기 1 file 아방스 2013.06.28 3211
기타 [Easy RPG]1강 - 스크립트 파헤치기 1부 13 file 개촙포에버 2013.02.28 3888
자료실 [소스 & 강좌 파일] Easy RPG 1.7 37 file 은색바람 2013.02.26 4027
기타 게임메이커 드로우의 짤팁들. - 계속 업뎃됨 7 개촙포에버 2013.02.16 3346
Board Pagination Prev 1 2 3 Next
/ 3