我正在做一個小練習,我必須初始化一個以隨機速度在屏幕上移動的球物體數組。當他們碰撞時,我需要球反轉速度。問題是我只能將每個球與自己比較,以便它們不斷「相交」並來回放鬆。我有一個很好的感覺,這個問題在if語句之下,因爲我將球[i]與球[i]比較,其中「i」同時是相同的數字。當我通過交叉函數的球[我],我需要比較每個元素除了自身以外的其他元素。我嘗試了一些方法,但他們沒有工作,並且是多餘的。for循環和陣列比較問題
//爲平局內環路()
for(int i = 0; i < balls.length; i++){
//balls[i].drawBalls();
//balls[i].moveBalls();
***if (balls[i].intersect(balls[i])) {
balls[i].moveIntersectingBalls();
}***
}
//球相交的方法
boolean intersect(Ball b) {
float distance = dist(bXpos,bYpos,b.bXpos,b.bYpos);
if (distance < bRadius + b.bRadius) {
return true;
} else {
return false;
}
}
//移動球,如果交叉方法
void moveIntersectingBalls(){
bXspd *= -1;
bYspd *= -1;
}
'比較球[I]到球[I]其中「i」同時是相同的number' - 是什麼那應該是什麼意思? – alfasin
好的,你似乎已經注意到了這個問題(「問題是我只能比較每個球本身,以便它們不斷」相交「)。你能解釋一下爲什麼你不能比較兩個不同的球嗎? – SJuan76