MP 그리드를 DS 그리드로 변환하기
이 문서는 MP 그리드를 DS 그리드로 변환하는 함수에 대해 설명합니다. 이 함수는 주어진 MP 그리드를 DS 그리드로 복사합니다. DS 그리드의 각 셀은 MP 그리드에서 점유된 것으로 표시된 경우 -1의 값을 가지며, 그렇지 않은 경우 0의 값을 가집니다.
함수 구문
mp_grid_to_ds_grid(source, destination);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
source | MP Grid ID | 사용될 MP 그리드의 인덱스 |
destination | DS Grid | 그리드 데이터를 복사할 DS 그리드 |
반환값
- Boolean: 변환 성공 여부
예제
다음 코드는 새로운 DS 그리드 motion_grid
를 생성하고, 변수 mp_grid
에 포함된 MP 그리드 데이터를 새로운 DS 그리드로 복사합니다.
motion_grid = ds_grid_create(room_width / 32, room_height / 32);
mp_grid_to_ds_grid(mp_grid, motion_grid);
활용 예제
예제 1: MP 그리드를 DS 그리드로 변환 후 사용하기
// MP 그리드 생성
mp_grid = mp_grid_create(0, 0, room_width / 32, room_height / 32);
// 특정 셀을 점유 상태로 설정
mp_grid_set_cell(mp_grid, 5, 5, true);
// DS 그리드로 변환
motion_grid = ds_grid_create(room_width / 32, room_height / 32);
mp_grid_to_ds_grid(mp_grid, motion_grid);
// DS 그리드의 값 출력
for (var x = 0; x < ds_grid_width(motion_grid); x++) {
for (var y = 0; y < ds_grid_height(motion_grid); y++) {
var value = ds_grid_get(motion_grid, x, y);
show_debug_message("Cell (" + string(x) + ", " + string(y) + "): " + string(value));
}
}
예제 2: DS 그리드를 기반으로 경로 탐색하기
// DS 그리드에서 경로 탐색 알고리즘 실행
var path = pathfinding_algorithm(motion_grid);
// 경로를 따라 이동
for (var i = 0; i < array_length(path); i++) {
var next_position = path[i];
move_to_position(next_position.x, next_position.y);
}
예제 3: DS 그리드의 점유 상태 변경하기
// 특정 셀의 점유 상태 변경
ds_grid_set(motion_grid, 5, 5, -1); // 점유 상태로 설정
ds_grid_set(motion_grid, 6, 5, 0); // 비어 있는 상태로 설정
이러한 예제들은 MP 그리드를 DS 그리드로 변환한 후 다양한 방식으로 활용할 수 있는 방법을 보여줍니다.