我有这种碰撞检测功能,但它对我不起作用。 当圆圈击中横杆时,它应该放在横杆底部和游戏结束处。 这是我的jsfiddle:http://jsfiddle.net/seekpunk/QnBhK/3/
因为你可以看到问题正在发生,并且球被卡在空中而不是杆的底部,我觉得这个功能不能正常工作
function collides(rx, ry, rw, rh, cx, cy, cradius) {
var x = Math.abs(cx - rx);
var y = Math.abs(cy - ry);
if (x > rw / 2 + cradius) { return (false); };
if (y > rh / 2 + cradius) { return (false); };
if (x <= rw / 2) { return (true); };
if (y <= rh / 2) { return (true); };
var dx = x - rw / 2;
var dy = y - rh / 2
return (dx * dx + dy * dy <= cradius * cradius);
}