我正在做一个小练习,我必须初始化一个以随机速度在屏幕上移动的球物体数组。当他们碰撞时,我需要球反转速度。问题是我只能将每个球与自己比较,以便它们不断“相交”并来回放松。我有一个很好的感觉,这个问题在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