-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
「不起作用」並不能告訴我們您遇到的問題。觀察到的行爲是什麼,它與你想要的行爲有什麼不同? –
球擊中廣場,並通過它而不是反彈(我有代碼,如果檢測到碰撞反轉方向) –