mp_grid_add_instances 함수 설명
mp_grid_add_instances
함수는 인스턴스 충돌 마스크를 사용하여 MP 그리드의 셀을 금지된 셀로 표시합니다. 금지된 셀은 경로 찾기 함수에 의해 통과할 수 없습니다. 이 함수는 정밀 충돌을 고려할지 여부를 설정할 수 있으며, 이 설정에 따라 금지된 셀의 표시가 달라집니다.
동작 방식
아래 이미지는 이 동작 방식을 설명합니다:
- 첫 번째 인스턴스는 정밀 설정이 true로 설정되어 있어, 그린 인스턴스가 "접촉"하는 그리드 사각형만 금지된 셀로 표시됩니다.
- 두 번째 인스턴스는 정밀 설정이 false로 되어 있어, 실제로 접촉하지 않는 다른 셀도 금지된 셀로 표시됩니다. 이는 스프라이트 마스크가 정밀로 설정되지 않았기 때문입니다.
구문
mp_grid_add_instances(id, obj, prec);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
id | MP Grid ID | 사용할 mp_grid의 인덱스 |
obj | Object Asset or Instance ID | mp_grid에 추가할 인스턴스의 객체 인덱스 또는 인스턴스 ID |
prec | Boolean | 픽셀 완벽 충돌을 기반으로 할지 여부 (true = 느림) 또는 일반적인 경계 상자 (false = 빠름) |
반환값
- N/A
활용 예제
- 정밀 충돌을 사용하는 예제:
gml mp_grid_add_instances(grid, obj_Wall, true);
- 비정밀 충돌을 사용하는 예제:
gml mp_grid_add_instances(grid, obj_Tree, false);
- 다양한 객체 추가 예제:
gml mp_grid_add_instances(grid, obj_Floor, true); mp_grid_add_instances(grid, obj_Enemy, false);
- 여러 인스턴스를 한 번에 추가하는 예제:
gml var instances = [obj_Wall, obj_Tree, obj_Enemy]; for (var i = 0; i < array_length(instances); i++) { mp_grid_add_instances(grid, instances[i], true); }
이와 같은 방식으로 mp_grid_add_instances
함수를 활용하여 다양한 인스턴스를 MP 그리드에 추가할 수 있습니다.