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

[게임메이커강좌-기초] 충돌 체크 함수 2

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

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

 

 

◈ collision 함수

 

 

게임메이커에서는 오브젝트와 오브젝트 간의 충돌 체크할 수 있는 것 이외에 가상의 도형으로 오브젝트와

충돌하는지 체크할 수 있는 함수들이 있습니다.

이번 강좌에서는 가상의 도형과 오브젝트간의 충돌 체크할 수 있는 함수에 대해 알아보도록 합시다.

 

아래 함수들은 가상의 기본 도형으로 충돌 체크하여, 상대 인스턴스의 id 를 반환하는 함수들 입니다.

 



collision_point(x,y,obj,prec,notme)
collision_rectangle(x1,y1,x2,y2,obj,prec,notme)
collision_circle(xc,yc,radius,obj,prec,notme)
collision_ellipse(x1,y1,x2,y2,obj,prec,notme)
collision_line(x1,y1,x2,y2,obj,prec,notme)



일반적으로 이 함수들로 설정한 가상의 도형으로 오브젝트의 마스크를 충돌 체크한다고 생각하시면

됩니다.

 

 

(▲ 가상의 도형으로 오브젝트의 마스크와의 충돌을 체크)

 

따라서 체크하려는 오브젝트에 마스크가 지정되어 있어야 체크할 수 있습니다.

 

 

(▲ 체크하려면 체크 대상 오브젝트에 마스크가 지정되어 있어야 합니다)


함수들의 인자 중 prec 은 정확도를 지정하면 됩니다.
false 로 지정하면, 마스크 이미지의 설정대로 체크하게 되고, true 이면 픽셀단위로 체크합니다.
보통 false 값으로 지정해요.

notme 는 현재 인스턴스를 충돌 검사에서 제외 할지를 지정하면 됩니다.
※ 체크하려는 obj 가 현재 인스턴스의 parent, 또는, 현재 오브젝트, 현재 인스턴스 id와 같아야,

현재 인스턴스도 체크 할 수 있습니다.

 

true 로 지정하면 현재 인스턴스는 제외하고, false 로 지정하면 현재 인스턴스까지 포함하여 충돌을 검사합니다.

 



collision_point(x,y,obj,prec,notme)


이 함수는 지정한 (x,y) 위치와 지정한 오브젝트(obj)가 충돌했을 때, 상대 인스턴스의 id 를 반환하는

함수입니다.

 

 

(collision_point 함수)

 



collision_rectangle(x1,y1,x2,y2,obj,prec,notme)

 

이 함수는 지정한 사각형 위치에, 지정한 오브젝트(obj)가 충돌했을 때, 상대 인스턴스의 id 를 반환하는

함수입니다.

좌측 상단(x1,y1), 우측 하단(x2,y2)로 사각형의 크기를 설정할 수 있습니다.

 


(collision_rectangle 함수)

 



collision_circle(xc,yc,radius,obj,prec,notme)

 

이 함수는 지정한 원형에, 지정한 오브젝트(obj)가 충돌했을 때, 상대 인스턴스의 id 를 반환하는 함수입니다.

(xc,yc) 는 원형의 중심점, radius 는 반지름을 지정하면 됩니다.

 


(▲ collision_circle 함수)

 



collision_ellipse(x1,y1,x2,y2,obj,prec,notme)


 

이 함수는 지정한 타원형에 지정한 오브젝트(obj)가 충돌했을 때, 상대 인스턴스의 id 를 반환하는 함수입니다.

좌측 상단(x1,y1), 우측 하단(x2,y2)로 타원형의 크기(사각형 지정과 같음)를 설정할 수 있습니다.

 


(▲ collision_ellipse 함수)

 



collision_line(x1,y1,x2,y2,obj,prec,notme)

 

이 함수는 지정한 선분에 지정한 오브젝트(obj)가 충돌했을 때, 상대 인스턴스의 id 를 반환하는 함수입니다.

(x1,y1)과 (x2,y2)로 선의 길이를 지정할 수 있습니다.

 

 

 

(▲ collision_line 함수)

 

300x250

댓글