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

[게임메이커강좌-기초] 충돌 체크와 충돌 이벤트

by 타락카얀 2016. 12. 13.
728x90



GAME MAKER 강좌



KAYAN









◈ 충돌 체크와 충돌 이벤트



이번 강좌에서는 충돌 이벤트에 대해 알아보도록 합시다.



(▲ 충돌 체크)


스프라이트는 게임에서 보여줄 수 있는 이미지이며, 이것은 애니메이션으로 구성할 수 있습니다.
또한, 이것은 게임메이커에서 충돌 체크에 관련된 마스크(mask)라는 중요한 역할을 합니다.


(▲ 마스크)


이 마스크의 범위를 어떻게 설정했는가에 따라, 오브젝트 간의 충돌시 피격범위가 달라 질 수

있습니다. 즉, 화면의 이미지상에 보이는 것과는 달리 전혀 다른 위치에서 충돌이 이루어 질 수도

있다는 것이지요.
따라서 그런 것들을 고려하여 마스크 범위를 설정하는 것이 중요합니다.

충돌 체크는 기본적으로 Collision 이벤트를 통해 체크할 수 있습니다.



(▲ 충돌 이벤트)


Collision 이벤트는 충돌을 체크할 오브젝트를 지정해주고, 충돌시 해당 오브젝트 간의 이벤트를

구성할 수 있습니다.
이 이벤트에서 충돌 대상을 제어할 수 있는데, 그 때 other 라는 기능 사용할 수 있습니다.
other 는 충돌 대상을 지칭하는 기능입니다.
예를 들어, 충돌 대상의 HP라는 변수를 -5 만큼 감소시킨다면,


 

other.HP-=5;



Collision 이벤트에서 이와 같이 할 수 있어요.


참고로 other 는 충돌 상대를 지칭하는 것일 뿐, 충돌 상대의 id 를 반환하는 것이 아니기 때문에,

충돌 상대 인스턴스의 id가 필요할 경우, other.id 로 해야 id 값을 얻을 수 있습니다.

이 기능은 with 문 안에서도 사용할 수 있는데, with 문 안에서는 with 문을 실행하는 오브젝트를

지칭합니다.
예를 들어, 아래와 같이


 

// A 오브젝트에서 실행

with(B){other.set+=1;}



A 오브젝트에서 with 문을 실행했을 때, otherwith 문을 실행하는 A 오브젝트의 set 변수를

제어하게 됩니다.


 

// A 오브젝트에서 실행

with(B){with(C){other.set+=1;}}



이와 같은 경우, other 가 있는 with문을 B 오브젝트에서 실행하기 때문에, other는 A가 아닌,

B의 set 변수를 제어하게 됩니다.




300x250

댓글