此函数使用实例碰撞遮罩(由精灵属性或调用实例的遮罩索引决定)在Mp网格中将单元格标记为"禁止"或"不禁止",在Mp网格中,任何路径查找函数都无法跨越禁止的单元格。您可以在函数中指定是否考虑精确碰撞,标记的禁止单元格将根据此设置进行更改。此图像说明了此行为:
上述两个实例已使用mp_grid_add_instances()函数添加到Mp网格中,并且精确设置为true。正如您可以看到的那样,由于其精灵遮罩也设置为精确,绿色实例仅将栅格方格标记为"触摸",这是禁止的。但是,第二个实例也标记了其他看起来不接触的单元格。这是因为sprite遮罩未设置为精确,这意味着即使在函数中使用了精确设置,也只会考虑精灵的边界框。如果将函数的精确参数设置为false,则也会发生这种情况-具有精确精灵遮罩的实例将基于其边界框添加到栅格中。
mp_grid_add_instances(id, obj, prec);
参数 | 类型 | 描述 |
---|---|---|
id | MP Grid ID | 要使用的mp_grid的索引 |
obj | Object Asset or Object Instance | 要添加到mp_grid中的实例的对象索引或实例ID |
prec | Boolean | 该复选框是基于像素完美碰撞(true=slow)还是基于其边界框(一般情况下为False=fast)。 |
N/A
mp_grid_add_instances(grid, obj_Wall, true);
上述代码将使用精确的碰撞遮罩而不是边界框将"obj_Wall"的所有实例添加到变量"grid"中的mp_grid索引中。