mp_grid_add_instances

此函数使用实例碰撞遮罩(由精灵属性或调用实例的遮罩索引决定)在Mp网格中将单元格标记为"禁止"或"不禁止",在Mp网格中,任何路径查找函数都无法跨越禁止的单元格。您可以在函数中指定是否考虑精确碰撞,标记的禁止单元格将根据此设置进行更改。此图像说明了此行为:

Add instances example上述两个实例已使用mp_grid_add_instances()函数添加到Mp网格中,并且精确设置为true。正如您可以看到的那样,由于其精灵遮罩也设置为精确,绿色实例仅将栅格方格标记为"触摸",这是禁止的。但是,第二个实例也标记了其他看起来不接触的单元格。这是因为sprite遮罩未设置为精确,这意味着即使在函数中使用了精确设置,也只会考虑精灵的边界框。如果将函数的精确参数设置为false,则也会发生这种情况-具有精确精灵遮罩的实例将基于其边界框添加到栅格中。

 

语法:

mp_grid_add_instances(id, obj, prec);

参数类型描述
idMP Grid ID要使用的mp_grid的索引
objObject Asset or Object Instance要添加到mp_grid中的实例的对象索引或实例ID
precBoolean该复选框是基于像素完美碰撞(true=slow)还是基于其边界框(一般情况下为False=fast)。

 

返回:

N/A

 

例子:

mp_grid_add_instances(grid, obj_Wall, true);

上述代码将使用精确的碰撞遮罩而不是边界框将"obj_Wall"的所有实例添加到变量"grid"中的mp_grid索引中。