경로 변경 포인트 (path_change_point)
이 함수는 경로에서 미리 정의된 포인트의 위치와/또는 속도 요소를 변경할 수 있습니다. 경로는 경로 편집기에서 생성되었거나 path_add() 함수를 사용하여 코드로 생성될 수 있습니다. 자산 브라우저에서 경로를 사용할 경우, 이 함수는 실제 자산을 변경하므로, 게임 내 모든 인스턴스에서 이 함수가 사용된 순간부터 게임이 끝날 때까지 경로의 사용 방식에 영구적으로 영향을 미칩니다. 만약 이러한 변경이 필요하지 않다면, 먼저 path_duplicate()와 같은 함수를 사용하여 경로의 복사본을 만든 후, 복제된 자산에서 이 함수를 호출해야 합니다. 더 이상 필요하지 않은 자산은 path_delete()를 호출하여 삭제하는 것을 잊지 마세요.
문법
path_change_point(index, n, x, y, speed);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| index | Path Asset | 변경할 포인트의 경로 인덱스 |
| n | Real | 속성을 변경할 정의된 포인트 |
| x | Real | 포인트의 새로운 x 좌표 (경로에 상대적) |
| y | Real | 포인트의 새로운 y 좌표 (경로에 상대적) |
| speed | Real | 포인트의 새로운 속도 요소 |
반환값
N/A
활용 예제
아래 코드는 "path0"으로 인덱스된 경로의 모든 포인트를 반복하여, 각 포인트를 128x128 픽셀 영역 내의 랜덤 위치로 재배치합니다.
for (var i = 0; i < path_get_number(path0); ++i) {
var px = path_get_point_x(pth_Patrol, i) + 64 - random(128);
var py = path_get_point_y(pth_Patrol, i) + 64 - random(128);
path_change_point(pth_Patrol, i, px, py, 100);
}
이 코드는 경로의 포인트를 랜덤하게 이동시키는 예제입니다.
추가 활용 예제:
- 경로의 속도 조정:
gml for (var i = 0; i < path_get_number(path0); ++i) { path_change_point(pth_Patrol, i, path_get_point_x(pth_Patrol, i), path_get_point_y(pth_Patrol, i), 200); } - 특정 포인트만 변경:
gml path_change_point(pth_Patrol, 2, 100, 150, 50); - 경로 복제 후 변경:
gml var new_path = path_duplicate(pth_Patrol); path_change_point(new_path, 0, 50, 50, 150); - 포인트 삭제 후 재배치:
gml path_delete(pth_Patrol); var new_path = path_add(); path_change_point(new_path, 0, 0, 0, 100);
이러한 예제들은 path_change_point 함수를 다양한 방식으로 활용하는 방법을 보여줍니다.