MP 그리드 셀 지우기 함수 해설
mp_grid_clear_cell
함수는 MP 그리드의 특정 "셀"을 지우는 데 사용됩니다. 셀은 방 좌표가 아니라 그리드 좌표로 계산되며, (0,0)은 그리드의 왼쪽 상단 모서리를 나타냅니다. 특정 방 위치의 셀을 지우려면 x 및 y 좌표를 MP 그리드의 해상도로 나누어 셀 좌표로 변환해야 합니다.
문법
mp_grid_clear_cell(id, h, v);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
id | MP 그리드 ID | 사용될 mp_grid의 인덱스 |
h | 실수 | 지울 셀의 수평 위치 |
v | 실수 | 지울 셀의 수직 위치 |
반환값
- Boolean: 성공 여부
예제
with (obj_Box) {
mp_grid_clear_cell(grid, floor(x / 32), floor(y / 32));
instance_destroy();
}
위 코드는 모든 "obj_Box" 인스턴스가 스스로 파괴되도록 하고, "grid" 변수에 인덱스된 mp_grid에서 그들이 차지했던 셀을 비어있다고 표시합니다. 이 예제에서는 객체의 x/y 좌표를 가져와 그리드의 해상도로 나누어 적절한 셀을 찾습니다 (값을 정수로 유지하기 위해 floor
를 사용).
활용 예제
- 적 캐릭터의 이동 경로 지우기
mp_grid_clear_cell(enemy_grid, floor(enemy.x / 32), floor(enemy.y / 32));
- 플레이어가 지나간 경로 표시
mp_grid_clear_cell(player_grid, floor(player.x / 32), floor(player.y / 32));
- 아이템 수집 후 그리드 업데이트
mp_grid_clear_cell(item_grid, floor(item.x / 32), floor(item.y / 32));
- 장애물 제거 시 그리드 업데이트
mp_grid_clear_cell(obstacle_grid, floor(obstacle.x / 32), floor(obstacle.y / 32));
- 게임 레벨 초기화 시 그리드 클리어
mp_grid_clear_cell(level_grid, floor(start_x / 32), floor(start_y / 32));
이와 같은 방식으로 mp_grid_clear_cell
함수를 활용하여 다양한 게임 로직을 구현할 수 있습니다.