instance_furthest 함수 설명
instance_furthest 함수는 주어진 x/y 좌표에서 가장 먼 객체 인스턴스를 찾는 데 사용됩니다. 이 함수는 지정된 객체의 모든 인스턴스를 확인하여, 주어진 x/y 위치에서 가장 먼 인스턴스를 반환합니다. 만약 해당 객체의 인스턴스가 없다면 noone을 반환합니다. 함수가 호출되는 인스턴스가 확인되는 객체와 같은 객체 인덱스를 가진 경우, 그 인스턴스도 포함되어 확인됩니다.
문법
instance_furthest(x, y, obj);
매개변수 설명
| 매개변수 | 유형 | 설명 |
|---|---|---|
| x | 숫자 | 인스턴스를 확인할 x 위치 |
| y | 숫자 | 인스턴스를 확인할 y 위치 |
| obj | 객체 인덱스 | 확인할 객체의 인스턴스 |
반환값
- Instance ID: 가장 먼 인스턴스의 ID
- noone: 인스턴스가 존재하지 않을 경우
예제 코드
다음 코드는 같은 객체 인덱스를 가진 인스턴스 중에서 가장 먼 인스턴스를 찾아 그 ID를 변수에 저장하는 예제입니다. 그런 다음, 호출된 인스턴스와 가장 먼 인스턴스 사이에 선을 그립니다.
var inst;
inst = instance_furthest(x, y, object_index);
if (inst != id){
draw_line(x, y, inst.x, inst.y);
}
활용 및 응용 예제
- 게임 월드에서 적과의 거리 확인
- 적이 플레이어와 얼마나 먼 위치에 있는지를 파악하여 전략적으로 이동할 수 있습니다.
gml var enemy = instance_furthest(x, y, obj_enemy); if (enemy != noone){ show_message("가장 먼 적 ID: " + string(enemy)); }
- 프로젝트에 여러 개의 아이템 처리
- 플레이어 주변에서 가장 먼 아이템에 접근하는 로직을 구현 가능
gml var farthest_item = instance_furthest(x, y, obj_item); if (farthest_item != noone) { var distance = point_distance(x, y, farthest_item.x, farthest_item.y); draw_text(x, y - 30, "가장 먼 아이템까지의 거리: " + string(distance)); }
- 성격 모방하는 NPC
- 특정 객체와 NPC 간의 거리를 비교하여 행동을 결정
gml var farthest_npc = instance_furthest(x, y, obj_npc); if (farthest_npc != noone) { if (distance_to_object(farthest_npc) > 500) { farthest_npc.speed = 2; // 멀리 있는 NPC는 빠르게 이동 } }
이 함수는 객체 간의 상대적 거리 분석과 같은 다양한 게임 로직에 매우 유용하게 활용할 수 있습니다.