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

rectangle_in_triangle(sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2, dx3, dy3);
| 参数 | 类型 | 描述 | 
|---|---|---|
| sx1 | Real | 源矩形左侧的x坐标。 | 
| sy1 | Real | 源矩形顶边的y坐标。 | 
| sx2 | Real | 源矩形右侧的x坐标。 | 
| sy2 | Real | 源矩形底侧的y坐标。 | 
| x1 | Real | 要检查的三角形第一侧的x坐标。 | 
| y1 | Real | 要检查的三角形第一侧的y坐标。 | 
| x2 | Real | 要检查的三角形第二条边的x坐标。 | 
| y2 | Real | 要检查的三角形第二条边的y坐标。 | 
| x3 | Real | 要检查的三角形第三条边的x坐标。 | 
| y3 | Real | 要检查的三角形第三条边的y坐标。 | 
var inst = instance_nearest(x, y, obj_Player);
if (instance_exists(inst))
{
    var x1 = x + lengthdir_x(100, image_angle - 45);
    var y1 = y + lengthdir_y(100, image_angle - 45);
    var x2 = x + lengthdir_x(100, image_angle + 45);
    var y2 = y + lengthdir_y(100, image_angle + 45);
    if (rectangle_in_triangle(inst.bbox_left, inst.bbox_top, inst.bbox_right, inst.bbox_bottom, x, y, x1, y1, x2, y2) == 1)
    {
        can_see = true;
    }
}
上述代码使用矩形in_triangle函数作为"视锥"来检查"obj_player"的实例。如果完整边界框在给定的三角形区域内,则会将变量设置为true。