rectangle_in_circle

此函数将检查您定义的矩形区域,以查看它是否完全不在目标边界内碰撞,或者它是否只是接触到定义的圆形区域。如果它们完全不接触,则函数将返回0;如果源完全在目标范围内,则返回1;如果它们只是重叠,则返回2。下图说明了这一点:

Rectangle circle collision example

 

语法:

rectangle_in_circle(sx1, sy1, sx2, sy2, x, y, rad);

参数类型描述
sx1Real源矩形左侧的x坐标。
sy1Real源矩形顶边的y坐标。
sx2Real源矩形右侧的x坐标。
sy2Real源矩形底侧的y坐标。
xReal圆心的x坐标
yReal圆心的y坐标。
radReal要检查碰撞的中心点周围的半径。

 

返回:

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