path_delete_point 함수 설명
path_delete_point 함수는 지정된 경로에서 특정 점을 제거하는 기능을 제공합니다. 경로의 점들은 0부터 번호가 매겨지며, 첫 번째 점은 항상 0번째 점이고 마지막 점은 path_get_number() - 1로 계산됩니다. 이 함수를 경로 자산에 호출하면, 점의 제거는 영구적이며, 이후에 해당 경로를 할당받은 모든 인스턴스는 제거된 점을 포함하지 않게 됩니다. 만약 이러한 방식이 필요하지 않다면, path_duplicate()와 같은 함수를 사용하여 먼저 경로의 복사본을 만든 후, 복제된 자산에서 이 함수를 호출해야 합니다. (더 이상 필요하지 않을 때는 path_delete()를 호출하는 것을 잊지 마세요.)
문법
path_delete_point(ind, n);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| index | Path Asset | 점을 삭제할 경로의 인덱스 |
| n | Real | 삭제할 점의 정의 |
반환값
- N/A
활용 예제
아래는 path_delete_point 함수를 활용한 예제 코드입니다.
예제 1: 충돌 감지 후 점 삭제
var _col = true;
while (_col) {
var _num = path_get_number(mypath) - 1;
if (_num > 2) {
var _x1 = path_get_point_x(mypath, _num);
var _y1 = path_get_point_y(mypath, _num);
var _x2 = path_get_point_x(mypath, _num - 1);
var _y2 = path_get_point_y(mypath, _num - 1);
if (collision_line(_x1, _y1, _x2, _y2, obj_Wall, true, false)) {
path_delete_point(mypath, _num);
_num -= 1;
} else {
_col = false;
}
} else {
_col = false;
}
}
예제 2: 경로의 모든 점 삭제
var total_points = path_get_number(mypath);
for (var i = total_points - 1; i >= 0; i--) {
path_delete_point(mypath, i);
}
예제 3: 특정 조건에 따라 점 삭제
for (var i = 0; i < path_get_number(mypath); i++) {
if (some_condition) {
path_delete_point(mypath, i);
}
}
예제 4: 경로 복사 후 점 삭제
var new_path = path_duplicate(mypath);
path_delete_point(new_path, 0); // 첫 번째 점 삭제
path_delete(new_path); // 더 이상 필요하지 않으면 삭제
이와 같이 path_delete_point 함수를 활용하여 경로의 점을 동적으로 관리할 수 있습니다.