GAME MAKER 강좌
KAYAN
◈ 충돌 체크 함수
게임메이커에서 충돌을 체크할 수 있는 함수는 여러가지가 있습니다.
(▲ 충돌 체크)
함수마다 각각 특징이 있어서 쓰임새에 따라 다양한 이벤트를 구성할 수 있습니다.
instance_place(x,y,obj) |
이 함수는 가장 일반적으로 사용하는 함수로 현재 인스턴스가 (x,y)위치에 있을 때, 지정된 인스턴스(obj)와
충돌시 상대 인스턴스의 id 를 반환하는 함수입니다.
이 함수는 마스크와 마스크의 충돌을 체크합니다.
(▲ 체크하려면 마스크가 필요)
따라서 체크하고자 하는 오브젝트 간에 어느 쪽이라도 마스크가 없다면 체크할 수 없습니다.
이 함수를 사용한다면 체크가 필요한 오브젝트에 스프라이트 이미지를 지정하거나 마스크 설정을
해주어야 체크할 수 있어요.
(▲ 체크하려면 마스크가 필요)
instance_position(x,y,obj) |
이 함수는 지정된 (x,y)위치에 지정한 인스턴스(obj)가 있다면, 그 인스턴스의 id 를 반환하는 함수입니다.
instance_place 와 비슷해 보이지만, 다른 점은 instance_place 는 마스크와 마스크가 충돌 했을 때
상대 id 를 반환하는 것이고, instance_position 은 지정된 위치와 그 인스턴스의 마스크가 충돌 했을 때,
그 인스턴스의 id를 반환하는 것입니다.
즉, instance_place는 마스크와 마스크, instance_position은 점(위치)과 마스크의 충돌이 다릅니다.
(▲ instance_position 함수 )
비슷한 함수로 collision_point 가 있습니다.
◈ place 함수
아래의 함수들은 true(1) 또는 false(0)를 반환하는 함수입니다.
place_free(x,y) |
일반적으로 마스크와 마스크의 충돌을 체크한다고 생각하시면 됩니다.
(▲체크하려면 마스크가 필요)
place_free(x,y) |
이 함수는 현재 인스턴스가 (x,y) 위치에 있을 때, solid 오브젝트와 충돌하고 있지 않는지를 체크하는
함수입니다. 충돌하지 않으면(solid 오브젝트가 없으면) true 를 반환하고, 충돌 할 경우(solid 오브젝트가
있으면), false 를 반환합니다.
보통 플랫포머에서 바닥과 충돌하는지를 체크할 때 사용하기도 합니다.
place_empty(x,y) |
이 함수는 현재 인스턴스가 (x,y) 위치에 있을 때, 그 어떤 인스턴스와도 충돌하고 있지 않는지를 체크하는
함수입니다. 충돌하지 않으면(마스크를 가진 오브젝트가 없으면) true 를 반환하고, 충돌 할 경우(마스크를
가진 오브젝트가 있으면), false 를 반환합니다.
place_free 함수와 place_empty 함수는 체크 방식이 비슷하지만, place_free 는 solid 오브젝트만 체크하고,
place_empty 함수는 마스크 설정을 가진 모든 오브젝트를 체크한다는 것이 다릅니다.
place_meeting(x,y,obj) |
이 함수는 현재 인스턴스가 (x,y) 위치에 있을 때, 지정한 오브젝트(obj)와 충돌하는지를 체크하는 함수입니다.
충돌 할 경우 true 를 반환하고, 충돌하지 않으면 false 를 반환합니다.
place_snapped(hsnap,vsnap) |
이 함수는 현재 인스턴스의 (x,y) 좌표가 지정한 격자에 위치하고 있는지를 반환합니다.
격자에 위치하고 있다면 true, 그렇지 않다면 false 를 반환합니다.
다만, (16,16) 의 격자를 설정했다면, (x,y) 좌표가 정확히 (16,16) 격자에 맞춰져야 충돌로 인정됩니다.
◈ position 함수
아래의 함수들은 true(1) 또는 false(0) 를 반환하는 함수입니다.
position_empty(x,y) position_meeting(x,y,obj) |
일반적으로 점(x,y 위치)과 마스크의 충돌을 체크한다고 생각하시면 됩니다.
얼핏 보기에 place_ 함수와 비슷해보이지만, place_ 함수는 현재 오브젝트 기준으로 다른 오브젝트를
체크하는 방식이고, 이 position_ 함수는 점(x,y 위치) 기준으로 다른 오브젝트를 체크하는 것이 다릅니다.
(▲체크하려면 마스크가 필요)
position_empty(x,y) |
이 함수는 지정한 (x,y) 위치에 그 어떤 인스턴스라도 없는지를 체크하는 함수입니다.
인스턴스가 없다면 true, 있다면 false 를 반환합니다.
position_meeting(x,y,obj) |
이 함수는 지정한 (x,y) 위치에 지정한 오브젝트(obj)가 있는지를 체크하는 함수입니다.
지정한 오브젝트(obj)가 그 위치에 있다면 true를, 없을 경우는 false 를 반환합니다.
아래 함수는 바로 실행되는 함수입니다.
position_destroy(x,y) |
이 함수는 현재 인스턴스가 (x,y) 위치에 있을 때, 현재 인스턴스를 즉시 파기하는 것으로,
if position_meeting(x,y,self){instance_destroy();} |
위 코드와 같은 형식의 함수입니다.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초] 이미지를 부분적으로 잘라서 표시하기 (0) | 2017.01.01 |
---|---|
[게임메이커강좌-기초] 충돌 체크 함수 2 (1) | 2016.12.15 |
[게임메이커강좌-기초] 충돌 체크와 충돌 이벤트 (0) | 2016.12.13 |
[게임메이커강좌-기초] 특정 오브젝트 찾기 (3) | 2016.12.08 |
[게임메이커강좌-기초] 가장 근접해 있는 오브젝트 찾기 (0) | 2016.12.08 |
댓글