我按照 http://www.emanueleferonato.com/2007/08/19/managing-ball-vs-ball-collision-with-flash/ 的示例进行操作在 Android 上创建球碰撞,
我的代码组织如下:
int N = 6; // number of balls
for (int i=0; i<N; i++) {
// move ball
// as in line 10~39
// collision detection
for(int j=i+1; j<N; j++) {
// as in line 66~77
} // end for
} // end for
但是,有时我的蛋蛋可能会粘在一起(重叠)。
例子中没有出现同样的情况。
为什么?
我需要为每个球启动一个线程吗?
最佳答案
当两个球以足够的速度碰撞以致在随后的 Action 循环中它们无法完全分开时,就会出现此问题。我发现处理此问题的最佳方法是将它们之间的距离标准化为 (r1 + r2),其中 r 是检测到碰撞时球的半径。这样可以确保它们在随后的 Action 循环中分离,但如果在非常狭窄的空间中有很多球,确实有可能导致额外的碰撞。
关于android - 球碰撞 : Balls Stick Together,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6406126/