目前正在编写java游戏,其中底部有三面墙和一个球拍,试图实施碰撞方法,检查球是否击中球拍。球有时会注意到球拍,有时也不会。想知道是否有人可以指出我出错的地方。
我的代码:
public boolean isCollision(Ball aBall) {
int ballYPos = aBall.getY(); // getY will return position of center of ball
int paddleXPos = Paddle.this.getX(); //will return upper left corner of paddle
if(ballYPos-aBall.getRadius() == paddleXPos+width ) //checking for yPos-radius
{
return true;
}
else return false;
}
答案 0 :(得分:0)
现在你正在检查它们是否完全相同。所以如果它们完全相同,它只会返回true,即。 10.1 == 10.1 ....但是10.1!= 10.2
尝试使用
if(ballYPos-aBall.getRadius() <= paddleXPos+width ) //checking for yPos-radius
{
return true;
}
然而,无论如何,这似乎是计算它的笨重方式。您正在将球的Y值与桨X值进行比较。