JavaScript HTML5画布冲突检测

JavaScript HTML5画布冲突检测,javascript,html,canvas,collision-detection,Javascript,Html,Canvas,Collision Detection,我正在使用HTML5Canvas和JavaScript创建一个类似的游戏。我已经走得很远了,但是检测到木槌和球的碰撞让我很为难。我尝试使用两个圆之间的距离和距离平方(通过绕过平方根来节省CPU)。我不明白为什么没有检测到碰撞 以下是我所拥有的: 请看一看,帮我弄清楚。源文件有些注释。您的hit函数错误。你应该简单地计算两点之间的距离(你做得很正确),并将其与木槌和球之间的最小距离进行比较 比如说, return distance_squared < radii_squared 返回距离的

我正在使用HTML5Canvas和JavaScript创建一个类似的游戏。我已经走得很远了,但是检测到木槌和球的碰撞让我很为难。我尝试使用两个圆之间的距离和距离平方(通过绕过平方根来节省CPU)。我不明白为什么没有检测到碰撞

以下是我所拥有的:


请看一看,帮我弄清楚。源文件有些注释。

您的hit函数错误。你应该简单地计算两点之间的距离(你做得很正确),并将其与木槌和球之间的最小距离进行比较

比如说,

return distance_squared < radii_squared
返回距离的平方<半径的平方
你实际上(有效地)在做:

返回-碰撞距离<半径平方-距离平方&&radii平方-距离平方<碰撞距离
这要求任何命中都在边缘的2个单位内,但我在hit()中看到的数字表明,你的比例因子使单个单位小于一个像素

return -COLLIDEDISTANCE < radii_squared - distance_squared && radii_squared - distance_squared < COLLIDEDISTANCE