GAME MAKER 강좌
KAYAN
이번 강좌에서는 특정 좌표에 대한 방향 및 거리 측정에 대해 알아보도록 합시다.
(▲ 방향과 거리는 얼마나 될까요?)
◈ 방향 측정
먼저 좌표에 대한 방향 측정은 아래의 함수를 사용하여 구할 수 있습니다.
point_direction(x1,y1,x2,y2)
이 함수는 (x1, y1)좌표에서 (x2, y2)좌표를 향한 방향을 구할 때 사용합니다.
(▲ 방향 측정)
사용법은 간단합니다.
(x1, y1)은 기준 점을 지정하면 되고, (x2, y2)는 목표 지점을 지정하면 됩니다.
예) direction = point_direction(x,y,320,240)
이렇게 하면 현재 오브젝트의 (x, y)좌표에서 (320, 240)좌표를 향한 각도를 direction에 할당하게
됩니다.
◈ 거리 측정
다음은 거리 측정 방법에 대해 알아보도록 합시다.
(▲ 두 좌표간의 거리 측정)
(x1, y1)과 (x2, y2) 두 좌표간의 거리를 측정하는데 아래의 함수를 사용합니다.
point_distance(x1,y1,x2,y2)
(x1, y1)좌표는 기준 점을 지정하면 되고, (x2, y2)는 목표 지점을 지정하면 됩니다.
또한 오브젝트를 통한 거리를 측정할 때 사용하는 특별한 함수도 있습니다.
distance_to_point(x,y)
이 함수는 아래의 그림과 같이 오브젝트의 마스크를 기준으로 (x, y) 좌표 사이의 최단 거리를 측정할 때
사용합니다.
(▲ 오브젝트의 마스크 기준으로 좌표간의 최단 거리 측정)
이 함수는 오브젝트의 마스크를 이용한 측정 방식이기 때문에 현재 오브젝트에 스프라이트 이미지 또는
특정 마스크 이미지가 지정되어 있어야 거리를 제대로 구할 수 있어요.
두 오브젝트 사이의 최단 거리를 측정할 수 있는 아래와 같은 함수가 있습니다.
distance_to_object(obj)
이 함수는 현재 오브젝트와 지정한 (obj) 오브젝트 사이의 최단 거리를 측정할 수 있습니다.
(▲ 두 오브젝트 사이의 최단 거리 측정)
두 오브젝트의 마스크를 이용한 거리 측정 방식이기 때문에 현재 오브젝트와 측정할 오브젝트에
스프라이트 이미지 또는 특정 마스크 이미지가 지정되어있어야 합니다.
참고로 distance_to_point와 distance_to_object는 오브젝트의 마스크를 이용하여 최단 거리를
측정할 때 유용하지만, image_angle로 회전시킬 경우 마스크에 영향을 주어 측정하는 거리가
달라질 수 있는 단점이 있습니다.
(▲ 마스크 자체가 회전할 경우 측정 거리가 전혀 달라 질 수 있음)
즉, 위와 같이 회전하더라도 마스크 모양대로 체크하는 것이 아니라, 그 틀에 맞게 사각형 틀(빨간색
사각형 참고)을 기준으로 거리를 측정하게 되어 예상과는 달리 전혀 다른 값이 나올 수 있다는 점을
유의하세요.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초]인스턴스 생성하기 (2) | 2014.08.14 |
---|---|
[게임메이커강좌-기초]일정한 거리에서 회전 (2) | 2014.07.10 |
[게임메이커강좌-기초]룸 이동시 변수값 유지 (1) | 2014.07.04 |
[게임메이커강좌-기초]with문 (4) | 2014.03.15 |
[게임메이커강좌-기초]확률을 위한 랜덤 수치 (2) | 2014.03.13 |
댓글