본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초]조건문

by 타락카얀 2013. 12. 9.
728x90



GAME MAKER 강좌



KAYAN




이번에는 조건문에 대해 알아봅시다.








◈if 문



어떠한 특정 이벤트에서만 변수 변경이나, 특정 이벤트를 실행하고 싶을 때 if 문을 사용합니다.
게임메이커에서 if 문은 이러한 구조로 되어있습니다.



     if (조건식)
     {
     (실행 이벤트)
     }



간단하지요.
조건식이 참이면 { }괄호 안의 이벤트를 실행하게 됩니다.

예를 들어 조건이 변수 vspeed가 8보다 클때 vspeed를 8로 계속 유지 시키는 이벤트를 작성해봅시다.
먼저 조건식은 vspeed가 8보다 컸을때이니, vspeed>8 이 되겠지요.
그리고 이벤트는 vspeed를 8로 설정하는 것이기 때문에 vspeed=8이 될것입니다.
이것을 코드로 작성하자면,



     if (vspeed>8)
     {
     vspeed=8;
     }



이렇게 됩니다.
이것은 vspeed가 8보다 크면 8로 계속 설정하는 것입니다.

조건문을 작성할때, 현재 조건문의 반대 조건문을 작성하고자 한다면, 조건문 앞에 'not' 을 붙이면 됩니다.



     if not(vspeed<=8)
     {
     vspeed=8;
     }



조건문은 다르지만, 위의 예문과 실제 실행 내용은 같습니다.
이것은 vspeed가 8보다 작지 않을때 vspeed를 8로 설정하는 것입니다.
단순히 not 을 붙임으로써 내용을 완전히 바꿀 수도 있다는 것입니다.

또한 조건문은 여러개의 조건식을 연결하여 구성할 수도 있습니다.
예를 들어 vspeed가 0보다 크고, obj_jump오브젝트와 충돌했을때, vspeed를 -8로 설정하는 것을

이벤트로 작성하면,



     if (vspeed>0)
     {
     if (place_meeting(x,y,obj_jump))
     {
     vspeed=-8;
     }
     }



이렇게 작성할 수 있습니다.
하지만, 이 조건문을 한줄로 묶을 수 있습니다.
'and'를 사용하면 조건문1과 조건문2를 하나의 조건문으로 만들 수 있지요.
예를 들면



     if (vspeed>0) and (place_meeting(x,y,obj_jump))
     {
     vspeed=-8;
     }



이런 식으로 말이지요.
이 예문은 위의 예문과 같지만, 아래 예문이 이벤트를 살펴볼때 간결하고, 보기에 좋습니다.
물론 따로 조건문을 작성하는 것이 보기 편하다면 따로 작성하시면 됩니다.
어차피 이벤트의 작성은 제작자의 몫이니까요.

조건문이 여러개 일때 일부 조건문만이라도 참일 때 이벤트를 실행하고 싶을 때가 있습니다.
그럴경우는 'and' 대신 'or' 를 조건문 사이에 넣으면 됩니다.



     if (vspeed>0) or (place_meeting(x,y,obj_jump))
     {
     vspeed=-8;
     }



이렇게 하면 vspeed가 0보다 크거나, 또는 obj_jump 오브젝트에 충돌했을때 이벤트를 실행하게 됩니다.
비록 조건이 다 맞지는 않지만 1개의 조건문이라도 만족시킨다면, 이벤트를 실행시키게 되는 것이지요.

기존의 조건문 전체의 반대가 되는 경우는 else 문을 사용하면 간단하게 이벤트를 구성할 수 있습니다.
예를 들어 hp가 0보다 클때는 hspeed를 2로 설정해 오른쪽으로 이동시키고, 그 조건의 반대인 경우는
현재 인스턴스를 파기하고자 할때,



     if hp>0
     {
     hspeed=2;
     }

     else//반대 조건문
     {
     instance_destroy();
     }



이런식으로 구성할 수 있습니다.

[참고] and 는 &&, or 는 ||, 그리고 not 은  ! 기호로도 사용할 수 있습니다.






300x250

댓글