移动时检测矩形和圆形之间的碰撞

时间:2018-04-27 23:26:00

标签: javascript game-physics

我正在努力为朋友做一个简单的pong娱乐活动,我很难检测到球击中球拍的时间,以便让它反弹。下面是我检测碰撞的功能,如果有人可以帮助解决这个问题,那么当球击中球拍时,碰撞功能返回true并且球被重定向,我将非常感激。

function checkWalls(){
// Bounce off right wall
if(ball.getX() + ball.getRadius() > getWidth()){
    dx = -dx;
}

// Bounce off left wall
if(ball.getX() - ball.getRadius() < 0){
    dx = -dx;
}

// Bounce off bottom wall
if(ball.getY() + ball.getRadius() > getHeight()){
    endGame();
}

// Bounce off top wall
if(ball.getY() - ball.getRadius() < 0){
    dy = -dy;
}

//detect collision betweeen ball and paddle, return true or false
function collision(ball,paddle){
var distX = Math.abs(ball.x - paddle.x-paddle.w/2);
var distY = Math.abs(ball.y - paddle.y-paddle.h/2);

if (distX > (paddle.w/2 + ball.r)) { return false; }
if (distY > (paddle.h/2 + ball.r)) { return false; }

if (distX <= (paddle.w/2)) { return true; } 
if (distY <= (paddle.h/2)) { return true; }

var dx=distX-paddle.w/2;
var dy=distY-paddle.h/2;
return (dx*dx+dy*dy<=(circle.r*circle.r));
}

//Bounce off paddle
if(collision == true){
    dy= -dy;
}

}

0 个答案:

没有答案