-2
我想让一个球从一个方块上弹开,但我无法检测到碰撞并且球弹跳得很好。我尝试制作两个矩形并使用相交,但是这并不工作,我不知道为什么。我应该手动编写碰撞检测吗?如果是这样,怎么样?或者由于我的项目中存在其他问题,矩形方法不起作用。这是我目前的碰撞检测。球与方块之间的碰撞
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;
}
}
'intersects()'做了什么?如果'me'与'other'相交不会'other'总是与'me'相交?什么不行? “球”能真的被认为是“矩形”吗? – doelleri
“不起作用”并不能告诉我们您遇到的问题。观察到的行为是什么,它与你想要的行为有什么不同? –
球击中广场,并通过它而不是反弹(我有代码,如果检测到碰撞反转方向) –