포인트 거리 함수 설명
point_distance
함수는 두 점 [x1, y1]과 [x2, y2]로 형성된 벡터의 길이를 반환합니다. 이 함수는 게임에서 적과 플레이어 간의 거리를 계산할 때 유용하게 사용됩니다. 예를 들어, 플레이어의 위치와 적의 위치 간의 거리를 계산하여 적이 사격 가능한 거리 내에 있는지를 판단할 수 있습니다.
문법
point_distance(x1, y1, x2, y2);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
x1 | 숫자 | 벡터의 첫 번째 구성 요소의 x 좌표 |
y1 | 숫자 | 벡터의 첫 번째 구성 요소의 y 좌표 |
x2 | 숫자 | 벡터의 두 번째 구성 요소의 x 좌표 |
y2 | 숫자 | 벡터의 두 번째 구성 요소의 y 좌표 |
반환 값
- 두 점 간의 거리 (숫자)
활용 예제
아래 코드는 가장 가까운 적의 x 및 y 좌표를 가져와서 플레이어의 좌표와의 거리를 계산합니다. 만약 거리가 200보다 작으면 "obj_Missile" 인스턴스를 생성합니다.
var ex, ey;
ex = instance_nearest(x, y, enemy).x;
ey = instance_nearest(x, y, enemy).y;
if (point_distance(x, y, ex, ey) < 200) {
instance_create_layer(x, y, "Bullets", obj_Missile);
}
추가 활용 예제
- 적의 공격 범위 확인 ```gml var enemy_x, enemy_y; enemy_x = enemy_instance.x; enemy_y = enemy_instance.y;
if (point_distance(player.x, player.y, enemy_x, enemy_y) < attack_range) { // 적이 공격할 수 있는 범위 내에 있음 enemy_attack(); } ```
- 플레이어와 아이템 간의 거리 체크 ```gml var item_x, item_y; item_x = item_instance.x; item_y = item_instance.y;
if (point_distance(player.x, player.y, item_x, item_y) < pickup_range) { // 아이템을 줍기 player_pickup_item(item_instance); } ```
- NPC와의 상호작용 거리 확인 ```gml var npc_x, npc_y; npc_x = npc_instance.x; npc_y = npc_instance.y;
if (point_distance(player.x, player.y, npc_x, npc_y) < interaction_range) { // NPC와 상호작용 interact_with_npc(npc_instance); } ```
이와 같이 point_distance
함수는 다양한 게임 로직에서 거리 계산을 통해 상호작용을 구현하는 데 매우 유용합니다.