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

以下代码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 x0<x1+w1 and y0<y1+h1 and 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值