mp_grid_get_cell 함수 설명
mp_grid_get_cell
함수는 주어진 mp_grid
의 특정 셀이 점유되었는지 확인하는 기능을 제공합니다. 이 함수는 (이전에 생성된) mp_grid
의 인덱스와 확인할 셀의 x, y 좌표를 인자로 받습니다. 만약 셀이 점유되어 있거나 확인하는 위치가 그리드의 경계를 벗어나면 함수는 -1을 반환하고, 그렇지 않으면 0을 반환합니다.
문법
mp_grid_get_cell(id, x, y);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
id | MP Grid ID | 사용할 mp_grid의 인덱스 |
x | Real | 확인할 그리드의 x 좌표 |
y | Real | 확인할 그리드의 y 좌표 |
반환값
- Real: 셀이 점유되었으면 -1, 그렇지 않으면 0을 반환합니다.
예제 코드
다음 코드는 마우스 위치에 해당하는 mp_grid
셀을 확인하고, 점유되어 있으면 image_blend
변수를 빨간색으로 설정하고, 점유되지 않으면 초록색으로 설정합니다.
if (mp_grid_get_cell(grid, mouse_x div 16, mouse_y div 16) == -1) {
image_blend = c_red;
} else {
image_blend = c_lime;
}
활용 예제
- 게임 내 장애물 체크
gml var cell_status = mp_grid_get_cell(grid, player.x div 16, player.y div 16); if (cell_status == -1) { // 장애물에 부딪힘 }
- AI 경로 계획
gml var next_cell = mp_grid_get_cell(grid, ai.x div 16, ai.y div 16); if (next_cell == 0) { // 이동 가능 }
- 타일 기반 맵에서의 상호작용
gml var interaction_cell = mp_grid_get_cell(grid, mouse_x div 16, mouse_y div 16); if (interaction_cell == 0) { // 상호작용 가능 }
- 게임 오브젝트의 위치 확인
gml var object_cell = mp_grid_get_cell(grid, object.x div 16, object.y div 16); if (object_cell == -1) { // 오브젝트가 다른 오브젝트와 충돌 }
- 맵 경계 확인
gml var boundary_check = mp_grid_get_cell(grid, x div 16, y div 16); if (boundary_check == -1) { // 경계 밖 }