0
我试图编写一个蛇游戏(我对这些都有点新鲜),而且我目前被困在这个碰撞函数中。我试图按照这里的说明Detecting collision of rectangle with circle 但我仍然很困惑。例如,圆形和矩形的坐标X和Y总是在变化。此外,我不知道如何在我的游戏板对象中调用我的圆形和矩形元素,我正在编写我的碰撞检测... snakeHead是我的圆和食物元素我的矩形。圆形和矩形的碰撞和范围
这里是我的代码...很抱歉,如果我没有表达自己的超清晰的方式因此混乱......
function collision(snakeHead, FoodElement) {
var snakeHead = {x, y, r}; //r is radian
var FoodElement = {x, y, w, h}; //w: width, h: height
var distX = Math.abs(snakeHead.x - FoodElement.y - FoodElement.w/2);
var distY = Math.abs(snakeHead.x - FoodElement.y - FoodElement.h /2);
if (distX > (FoodElement.w/2 + circle.r)) {return false;}
if (disY > (FoodElement.h/2 + circle.r)) {return false;}
if (distX <= (FoodElement.w/2)) { return true; }
if (distY <= (FoodElement.h/2)) { return true; }
var dx = distX - FoodElement.w/2;
var dy = distY - FoodElement.h/2;
return (dx*dx+dy*dy<=(snakeHead.r*snakeHead.r));
console.log("IMPACT"); }