碰撞检测算法:点和矩形碰撞、矩形碰撞

以下代码Lua可直接调试.

点与矩形碰撞

-- 点与矩形碰撞
function testPoint(x0,y0,w0,h0,x1,y1)
    return x1 >= x0 and x1 <= x0 + w0 and y1>=y0 and y1 < y0 + h0
end

矩形碰撞

-- 矩形碰撞
function testRect(x0,y0,w0,h0,x1,y1,w1,h1)
    return x0and y0and x0+w0>x1 and y0+h0>y1
end

圆形碰撞

-- 圆形碰撞
function testCircle(x0,y0,r0,x1,y1,r1)
    return math.sqrt(math.pow(math.abs(x0-x1),2)+math.pow(math.abs(y0-y1),2)) < r0+r1
end

点与圆形碰撞

-- 点与圆形碰撞
function testCircle(x0,y0,x1,y1,r1)
    return math.sqrt(math.pow(math.abs(x0-x1),2)+math.pow(math.abs(y0-y1),2)) < r1
end

你可能感兴趣的:(lua)