조건문 if
게임을 제작하다보면 변수의 값을 다른 값과 비교해야하는 경우가 발생합니다. 예를들면..
" 현재 캐릭터 체력(hp) 값이 '0' 과 같거나 작으면 캐릭터가 사망한다! "
위 문장을 그대로 인스턴스에 적용하기위해 오브젝트를 설계한다고 가정했을때..
변수 hp 값을 0 과 비교해서, 같거나 작은지 알아봐야합니다. 이때 사용해야하는 것이 바로 조건문 중 하나인 if 문 입니다.
긴 말 하지않고 바로 오브젝트를 설계해봅시다. 오브젝트를 하나 준비하시고, [Create] 이벤트를 추가해주세요.
변수를 선언 할겁니다. 변수설정액션을 넣어줘야겠죠?
hp 라는 이름으로 변수값을 100으로 하겠습니다.
변수선언을 해주고.. 이번엔 hp값을 낮춰줄 수 있도록 설계해볼겁니다. 이벤트를 추가합시다.
[Global left pressed] 이벤트를 선택해줍시다.
이 이벤트는 저번강좌에서도 사용해보았듯이 아무곳이나 마우스 왼쪽버튼을 클릭할 시 발동됩니다.
마찬가지로 변수설정 액션을 넣어줍니다.
hp 값을 현재 값을 기준으로(Relative가 체크되어있음) 10 만큼 감소 합니다.
마지막으로 이벤트 하나 더 추가해줍니다.
바로 변수값을 확인하기위한 Draw이벤트입니다.
변수값을 계속해서 화면에 그려주기위해.. 변수 그리기 액션을 넣어주세요.
인스턴스가 위치한 좌표에 변수가 보일겁니다.
사실 여기까지는 이전강좌에서 했던 내용과 거의 동일하네요. 변수를 선언하고, 클릭 시 변수값이 줄어들고..
현재 변수값은 계속해서 화면에 그려지게됩니다.
룸에 적당히 배치해서 게임을 실행하신 후 클릭을 계속하다보면.. hp변수가 계속해서 떨어져서 마이너스로 떨어지는걸 확인 가능합니다.
하지만 이제 hp값이 0보다 떨어지면 게임이 종료되도록 설정해볼겁니다.
다시 오브젝트로 넘어와서 본격적 if문 을 사용해봅시다. 이벤트를 추가해주세요.
[Step]->[Step] 이벤트를 추가.
[control] 탭에있는 변수비교 액션(if문)을 넣어주세요
----------[Test Variable]------------
variable : 비교할 변수
value : 비교할 값 (이곳에는 상수가 아닌 변수를 적을수도 있습니다. 즉, 변수끼리 값을 비교할 수도 있어요!)
operation : 비교연산을 어떻게 할지 선택합니다.
- equal to ▶ 값이 같을경우
- less than ▶ 값이 작을경우
-greater than ▶ 값이 클경우
- less than or erqual to ▶ 값이 작거나 같을경우
-greater than or equal to ▶ 값이 크거나 같을경우
------------------------------------
우리는 당연히 'less than or erqual to' 을 선택해야겠죠? hp 값이 0보다 '값이 작거나 같을경우' 를 비교해야하니..
그 후 조건문액션 아래에 위와같이 스타트블럭과 엔드블럭을 넣어줍니다.
여기서 스타트블럭과 엔드블럭의 사이 영역을 실행 영역이라고 합니다.
이 실행영역이 될 부분에 [main2] 탭에있는 게임종료 액션을 넣어주세요.
모든 조건문 (if 문 외에도 조건문의 종류는 여러가지가 있습니다) 에는 스타트~엔드 블럭을 무조건 구성하는게 일반적이지만
생략이 가능한 경우가 있습니다.
바로 실행영역에 액션이 하나밖에 없는경우 스타트~엔드블럭을 생략해도 괜찮습니다.
조건문은 스타트~엔드블럭이 없을경우 바로 아래에 위치한 액션 한개만 실행영역으로 판단합니다.
때문에 우리가 위에서 설계한 오브젝트같은 경우에는 조건문에 해당하는 실행영역에 액션이 하나밖에 없기에 생략해도 괜찮습니다.
이제 제대로 작동하는지.. 게임을 실행해서 변수값이 0이되는순간 게임이 종료되는지 확인해보세요.
마지막으로 보충하는 마음에서 오브젝트의 흐름을 살펴보자면 1스텝 마다 인스턴스가 가지고있는 Step 이벤트가 발생되면서
조건문의 조건이 참인지 거짓인지 여부를 판단합니다. (hp 값이 0보다 작거나 같은지)
그 후 그 조건이 참 일경우 실행영역에 있는 액션들이 실행되는거죠.
참고로 Step 이벤트에서 조건문을 처리한 이유는 hp값이 언제 어디서 바뀌든지 계속해서 확인하기 위해서겠죠?
이것으로 이번강좌에서는 조건문 중 가장 대표적으로 활용되는 if문에 대해서 알아보았습니다.
사실은 기초 강좌는 12편으로 구성하여 여기서 마치려고 하였으니 아직 여러분은 이 강좌를 통해 게임을 개발하지 못 했습니다.
때문에 슈팅게임을 개발해보는 강좌를 추가로 작성하기로 하였습니다. 이후 슈팅게임 제작 강좌를 통해 찾아뵙겠습니다.
'GMStudio > GMS 강좌' 카테고리의 다른 글
게임메이커 스튜디오 기초강좌 :: 슈팅게임 제작 [2] 비행기 공격 (0) | 2015.07.12 |
---|---|
게임메이커 스튜디오 기초강좌 :: 슈팅게임 제작 [1] 비행기 이동 (2) | 2015.07.11 |
게임메이커 스튜디오 기초강좌 [11] 변수 (0) | 2015.06.18 |
게임메이커 스튜디오 기초강좌 [10] 사운드 (5) | 2015.06.17 |
게임메이커 스튜디오 기초강좌 [9] 백그라운드, 타일 (0) | 2015.06.10 |