此函数将检查您定义的两个矩形区域,以查看源矩形是否完全在目标矩形边界内不发生碰撞,或者是否只是接触源矩形。如果它们完全不接触,则函数将返回0;如果源完全在目标范围内,则返回1;如果它们只是重叠,则返回2。下图说明了这一点:
rectangle_in_rectangle(sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2);
参数 | 类型 | 描述 |
---|---|---|
sx1 | Real | 源矩形左侧的x坐标。 |
sy1 | Real | 源矩形顶边的y坐标。 |
sx2 | Real | 源矩形右侧的x坐标。 |
sy2 | Real | 源矩形底侧的y坐标。 |
dx1 | Real | 要检查的目标矩形左侧的x坐标。 |
dy1 | Real | 要检查的目标矩形顶部边的y坐标。 |
dx2 | Real | 要检查的目标矩形右侧的x坐标。 |
dy2 | Real | 要检查的目标矩形底边的y坐标。 |
switch(rectangle_in_rectangle(x - 50, y - 50, x + 50, y + 50, mouse_x - 50, mouse_y - 50, mouse_x + 50, mouse_y + 50))
{
case 0: image_blend = c_yellow; break;
case 1: image_blend = c_red; break;
case 2: image_blend = c_orange; break;
}
上述代码检查两个矩形区域是否存在碰撞,并将根据返回值设置实例image_blend。