您可以使用此函数检查调用实例是否会与游戏中标记为固体的任何实例发生碰撞。现在,需要注意的是,运行代码的实例必须具有有效的碰撞遮罩(对于sprite本身,或者通过mask_index),并且它只会注册与那些也具有有效遮罩的实体标记实例的碰撞。
当放置在x/y参数指定的位置时,该函数本身基本上通过获取实例并测试仅具有实体标记实例的碰撞来工作。碰撞检查可以是精确的,也可以基于实例的边界框,具体取决于选择了哪种碰撞遮罩。
place_free(x, y);
参数 | 类型 | 描述 |
---|---|---|
x | Real | 要检查的x位置。 |
y | Real | 要检查的y位置。 |
if (place_free(mouse_x, mouse_y))
{
x = mouse_x;
y = mouse_y;
}
如果要将调用实例放置在与鼠标相同的位置,则上述代码将检查是否与任何实体标记的实例发生碰撞。如果未检测到碰撞,则将实例的x/y坐标设置为鼠标的坐标。