원 안의 점 확인 함수 (point_in_circle)
이 문서에서는 GameMaker에서 제공하는 point_in_circle
함수에 대해 설명합니다. 이 함수는 주어진 점이 정의된 원 안에 있는지를 확인하는 데 사용됩니다. 만약 점이 원 안에 있다면 함수는 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
함수 구문
point_in_circle(px, py, x1, y1, rad);
매개변수 설명
매개변수 | 유형 | 설명 |
---|---|---|
px | 숫자 | 확인할 점의 x 좌표 |
py | 숫자 | 확인할 점의 y 좌표 |
x1 | 숫자 | 원의 중심 x 좌표 |
y1 | 숫자 | 원의 중심 y 좌표 |
rad | 숫자 | 원의 반지름 |
반환값
true
: 점이 원 안에 있을 때false
: 점이 원 밖에 있을 때
활용 예제
아래 코드는 마우스 위치가 정의된 원 안에 있는지를 확인하는 예제입니다. 마우스가 원 안에 있을 경우 변수 over
를 true
로 설정하고, 그렇지 않으면 false
로 설정합니다.
if (point_in_circle(mouse_x, mouse_y, x, y, 16)) {
over = true;
} else {
over = false;
}
다양한 활용 및 응용 예제
- 충돌 감지: 게임에서 캐릭터가 특정 아이템과 충돌했는지 확인할 때 사용할 수 있습니다.
gml if (point_in_circle(player.x, player.y, item.x, item.y, item.radius)) { // 아이템을 획득 }
- UI 요소 활성화: 마우스가 버튼 위에 있을 때 버튼을 강조 표시하는 기능에 활용할 수 있습니다.
gml if (point_in_circle(mouse_x, mouse_y, button.x, button.y, button.radius)) { button.highlight = true; } else { button.highlight = false; }
- 게임 내 이벤트 트리거: 특정 지역에 들어갔을 때 이벤트를 발생시키는 데 사용할 수 있습니다.
gml if (point_in_circle(player.x, player.y, event_area.x, event_area.y, event_area.radius)) { // 이벤트 발생 }
- 적의 공격 범위 확인: 적이 플레이어를 공격할 수 있는 범위에 있는지를 확인하는 데 사용할 수 있습니다.
gml if (point_in_circle(player.x, player.y, enemy.x, enemy.y, enemy.attack_radius)) { // 공격 실행 }
- 원형 미니게임: 원 안에 있는 점을 클릭하는 미니게임을 구현할 때 사용할 수 있습니다.
gml if (point_in_circle(mouse_x, mouse_y, target.x, target.y, target.radius)) { // 점 클릭 성공 }
이와 같이 point_in_circle
함수는 다양한 게임 로직에서 유용하게 사용될 수 있습니다.