변수(variable)
다른 프로그래밍 언어를 사용해보적이 있다면 변수를 모를리 없을 겁니다.
다만.. 이 강좌는 프로그래밍 경험이 전무한 슈퍼 초보 분들을 위해 작성된 게시물이기에 자세하게 짚어볼게요.
게임을 제작하다 보면 '값' 을 저장해두어야 하는 일이 수 없이 생깁니다. 예를들면 캐릭터의 레벨이나 점수, 체력 같은 것들이 있겠죠?
이런 '값'을 저장할 수 있는 메모리 공간의 이름, 혹은 공간 자체를 '변수' 라 칭합니다.
무슨 얘기냐 하면 일단 값을 저장하려면 메모리공간이 하나 필요할겁니다.
메모리 공간에 위와같이 '5' 라는 값을 저장하고 나서.. 이제 이 메모리 공간에 있는 값에 접근하려면 어떻게 할지 고민해야합니다.
아무리 친한 친구라도 이름을 모르면 말을 걸 수 없으니깐요?
때문에 이 메모리 공간에 접근하기 위해서 이 메모리 공간에도 이름을 지어줄 필요가 있는 거죠.
'money' 라는 이름을 지어주었습니다. 그럼 이제 우리는 이 메모리공간을 접근할 때 money라는 이름으로 접근하면 됩니다.
여기서 바로 money가 변수가 되는것이죠. 괜히 이상한 그림까지 그려가면서 설명하긴 했지만 전혀 어려운내용이 아닙니다.
이제 프로젝트로 넘어가 봅시다.
이번에도 저는 프로젝트를 새로 만들어서 사용하겠습니다.
오브젝트를 새로 만들어주시는데.. 스프라이트를 씌울 필요는 없습니다. 오브젝트 안에는 [Create] 이벤트를 추가해주세요.
(지금 껏 스프라이트를 항상 씌워주었지만 사실 스프라이트를 씌어 줄 필요 없는 오브젝트도 실제 작업할 때 많이 설계합니다.)
[Create] 이벤트에 [control] 탭에 있는 변수설정 액션을 넣어줍시다.
말 그대로 변수를 설정할 수 있도록 해주는 액션입니다.
----------[Set Variable]------------
variable : 변수의 이름
참고로 변수의 이름은 영문과 숫자, 언더바(_)의 조합으로 작성할 수 있습니다. 또한, 숫자로 시작할 수 없습니다.
value : 저장 할 값
------------------------------------
일반적으로 위와같이 [Create] 이벤트에 변수설정 액션을 통해서 변수를 설정하는 과정을 '변수 선언' 이라고 합니다.
또, 이 때 [Create] 이벤트 에서 선언한 변수(최초로 변수가 선언되는 부분)의 값은 이 변수의 '초기값' 으로 설정됩니다.
이것으로 변수가 선언되도록 설계 완료. 이제 이 변수를 화면상에서 확인해보도록 하겠습니다.
일단 [Draw] - [Draw] 이벤트를 오브젝트에 추가해주세요.
참고로 이 드로우 이벤트는 스텝 이벤트 처럼 1스텝마다 갱신되며, 화면에 무엇인가를 그릴때 사용됩니다.
Draw 이벤트에 변수 그리기 액션을 넣어줍니다.
----------[Draw Variable]------------
variable : 화면상에 그려줄 변수 이름
x : 그릴 x좌표
y : 그릴 y좌표
Relative : 현재 좌표를 기준으로 할 것인지
------------------------------------
위와같이 설정하면 현재좌표 기준으로 (0, 0) 위치, 즉 오브젝트가 배치되는 (인스턴스가 생성되는 위치) 에 변수가 그려질겁니다.
룸에 오브젝트 배치 후, 게임을 실행해보면 위와같이 변수가 화면에 그려진 것을 확인 가능합니다.
마지막으로 변수의 값을 변경해보는 작업을 해봅시다.
작업했던 오브젝트에 [Global mouse] -> [Global left pressed] 이벤트를 추가해주세요.
이 이벤트는 화면 전체 아무곳이나 왼쪽 마우스 버튼을 클릭했을경우 발동됩니다.
이제 이 이벤트가 발생될때 값을 변경해줄 변수 설정 액션을 넣어줍니다.
money 변수 값을 1 만큼 현재 값을 기준으로 해서 (Relative를 체크함으로서..)증가하게됩니다.
액션을 추가했으면.. 이제 다시 게임을 실행해봅시다.
화면 클릭시 변수값이 증가하네요.
이것으로 변수 강좌를 끝내고, 다음 강좌에서 조건문에 대해서 알아보도록 합시다.
'GMStudio > GMS 강좌' 카테고리의 다른 글
게임메이커 스튜디오 기초강좌 :: 슈팅게임 제작 [1] 비행기 이동 (2) | 2015.07.11 |
---|---|
게임메이커 스튜디오 기초강좌 [12] 조건문 if (0) | 2015.06.24 |
게임메이커 스튜디오 기초강좌 [10] 사운드 (5) | 2015.06.17 |
게임메이커 스튜디오 기초강좌 [9] 백그라운드, 타일 (0) | 2015.06.10 |
게임메이커 스튜디오 기초강좌 [8] 스텝 이벤트, 알람 이벤트 (0) | 2015.06.09 |