球与方之间的碰撞

时间:2017-05-24 17:23:48

标签: java collision-detection

我试图让一个球从一个正方形反弹,但我无法检测到碰撞并使球正常反弹。我尝试制作两个矩形并使用交叉,但这不起作用我不知道为什么。我应该手动编写碰撞检测吗?如果是这样,怎么样?或者由于我的项目中的其他问题,矩形方法无法正常工作。这是我目前的碰撞检测。

    public boolean collidedWith(Ball ball){
            int ballX = ball.getXPosition();
            int ballY = ball.getYPosition();
            int ballRadius = ball.getRadius();
            int squareX = this.getXPosition();
            int squareY = this.getYPosition();

            Rectangle me = new Rectangle(squareX, squareY, size, size);
            Rectangle other = new Rectangle(ballX, ballY, ballRadius,ballRadius);

        if(me.intersects(other)|| other.intersects(me))
        {

            return true;
        }
        else
            return false;

  }
 }

1 个答案:

答案 0 :(得分:0)

我发现很难理解你的代码。你不是很好。 但为了发现碰撞 - 你检查球是否击中了广场的边界。

    if (Math.abs(ballX + ballVelocityX) + ballRadius > SquareX)
 ...;
     if (Math.abs(ballY + ballVelocityY) + ballRadius > SquareY)
 ...;

数学绝对值是绝对值。