Set Point Direction
이 문서는 현재 인스턴스의 위치와 주어진 위치로 형성된 벡터의 방향을 설정할 때 사용하는 액션인 "Set Point Direction"에 대해 설명합니다. 이 액션은 인스턴스의 위치와 원하는 목표 위치 간의 방향을 정하는 데 사용됩니다.
액션 설명
이 액션은 "point"라고 하는 x 및 y 위치를 제공받습니다. 이 위치는 인스턴스의 현재 위치에 상대적일 수 있으며, 인스턴스에서 해당 지점으로 향하는 방향이 인스턴스의 방향으로 설정됩니다.
액션 구문
SetPointDirection(x, y)
인수 설명
| 인수 | 설명 |
|---|---|
| x | 방향 벡터의 x 성분 |
| y | 방향 벡터의 y 성분 |
예제
아래의 코드 예시는 "obj_Player"라는 오브젝트의 인스턴스가 방에 존재하는지를 확인한 후, 존재할 경우 "obj_Player"의 x/y 위치를 향하도록 인스턴스의 방향을 설정합니다.
if (instance_exists(obj_Player)) {
var player_x = obj_Player.x;
var player_y = obj_Player.y;
SetPointDirection(player_x, player_y);
}
다양한 활용 및 응용 예제
- 적 AI의 방향 설정
gml if (instance_exists(obj_Player)) { SetPointDirection(obj_Player.x, obj_Player.y); speed = 5; // 속도 설정 }- 적 NPC가 플레이어를 추적하도록 설정할 수 있습니다. 플레이어 캐릭터의 위치를 감지하여 자동으로 방향을 설정합니다.
- 발사체의 방향 설정
gml var bullet = instance_create(x, y, obj_Bullet); bullet.direction = point_direction(x, y, obj_Player.x, obj_Player.y);- 특정 위치(예: 플레이어)로 날아가는 발사체를 생성할 때 유용합니다.
- 마우스 클릭으로 방향 설정
gml if (mouse_check_button_pressed(mb_left)) { SetPointDirection(mouse_x, mouse_y); }- 사용자가 클릭한 위치로 인스턴스의 방향을 설정할 수 있습니다.
- 회전하는 오브젝트
gml x += lengthdir_x(speed, direction); y += lengthdir_y(speed, direction); direction += 5; // 매 프레임마다 5도 회전- 정해진 방향으로 계속 회전하는 오브젝트를 만들 수 있습니다.
이와 같이 "Set Point Direction" 액션을 활용하여 다양한 방향 설정이 가능합니다. 이를 통해 게임 내에서의 인스턴스 이동, 추적 및 상호작용을 더욱 풍부하게 만들 수 있습니다.