mp_linear_path 함수 설명
mp_linear_path
함수는 현재 인스턴스 위치에서 "xgoal" 및 "ygoal" 값으로 지정된 지점까지의 직선 경로를 계산합니다. 이 함수는 mp_linear_step()
함수와 동일한 단계 크기를 사용합니다. 지정된 경로는 이미 존재해야 하며, 새로운 경로로 덮어씌워집니다. 함수는 전체 경로가 발견되었는지(true) 또는 그렇지 않은지(false)를 반환합니다. false가 반환되면 경로가 여전히 생성되지만, 경로가 차단된 위치까지만 실행됩니다.
주의: 이 함수는 인스턴스를 이동시키지 않습니다. 경로만 설정하며, 이동을 위해서는 path
관련 함수를 사용해야 합니다.
문법
mp_linear_path(path, xgoal, ygoal, stepsize, checkall);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
path | Path Asset | 사용할 경로 |
xgoal | Real | 목표 x 위치 |
ygoal | Real | 목표 y 위치 |
stepsize | Real | 인스턴스가 한 단계에서 이동하는 속도 (픽셀) |
checkall | Boolean | 모든 인스턴스와의 충돌을 확인할지 여부 (true) 또는 단단한 것만 확인할지 여부 (false) |
반환값
- Boolean: 경로가 발견되었는지 여부
활용 예제
- 기본 경로 설정
if (mp_linear_path(path, obj_Player.x, obj_Player.y, 2, 0)) {
path_start(path, 2, 0, 0);
}
이 코드는 객체가 현재 위치에서 "obj_Player"의 위치까지 직선 경로가 있는지 확인하고, 경로가 있으면 그 경로를 시작합니다.
- 충돌 체크 활성화
if (mp_linear_path(path, target_x, target_y, 3, true)) {
path_start(path, 3, 0, 0);
}
이 예제에서는 모든 인스턴스와의 충돌을 체크하며, 목표 위치까지의 경로를 설정합니다.
- 경로가 차단된 경우
if (!mp_linear_path(path, destination_x, destination_y, 1, false)) {
// 경로가 차단됨, 대체 행동 수행
move_towards_point(destination_x, destination_y, 2);
}
이 코드는 경로가 차단된 경우 대체 행동을 수행하도록 설정합니다.
- 다양한 속도로 이동
for (var speed = 1; speed <= 5; speed++) {
if (mp_linear_path(path, target_x, target_y, speed, false)) {
path_start(path, speed, 0, 0);
}
}
이 예제는 다양한 속도로 목표 위치까지의 경로를 설정합니다.
- 경로 설정 후 추가 작업
if (mp_linear_path(path, target_x, target_y, 2, true)) {
path_start(path, 2, 0, 0);
// 경로가 설정된 후 추가 작업 수행
show_message("경로가 성공적으로 설정되었습니다!");
}
이 코드는 경로가 성공적으로 설정된 후 메시지를 표시합니다.