此函数将检查您定义的矩形区域,以查看它是否完全不在目标边界内碰撞,或者它是否只是接触到定义的圆形区域。如果它们完全不接触,则函数将返回0;如果源完全在目标范围内,则返回1;如果它们只是重叠,则返回2。下图说明了这一点:
rectangle_in_circle(sx1, sy1, sx2, sy2, x, y, rad);
参数 | 类型 | 描述 |
---|---|---|
sx1 | Real | 源矩形左侧的x坐标。 |
sy1 | Real | 源矩形顶边的y坐标。 |
sx2 | Real | 源矩形右侧的x坐标。 |
sy2 | Real | 源矩形底侧的y坐标。 |
x | Real | 圆心的x坐标 |
y | Real | 圆心的y坐标。 |
rad | Real | 要检查碰撞的中心点周围的半径。 |
inst = instance_nearest(x, y, obj_Bullet);
if (instance_exists(inst))
{
if (rectangle_in_circle(inst.x - 5, inst.y - 5, inst.x + 5, inst.y + 5, x, y - 25, 20) > 0)
{
hit = true;
}
}
以上代码使用rectangle_in_circle函数检查圆形区域内是否存在碰撞以及找到的实例周围是否存在矩形。如果存在碰撞(边缘重叠或包含),则变量将设置为true。