我有一个简单的Java applet,它有两个用户控制的球,使用java.awt
绘制。我需要一种方法来检测它们之间的碰撞。我有与壁碰撞检测的算法:圆圈的碰撞检测
if (xPosition > (300 - radius)){
xSpeed = -xSpeed;
}
else if (xPosition < radius){
xSpeed = -xSpeed;
}
else if (yPosition > (300 - radius)) {
ySpeed = -ySpeed;
}
else if (yPosition < radius){
ySpeed = -ySpeed;
}
xPosition += xSpeed;
yPosition += ySpeed;
和用于第二球:
if (xPosition2 > (300 - radius)){
xSpeed2 = -xSpeed2;
}
else if (xPosition2 < radius){
xSpeed2 = -xSpeed2;
}
else if (yPosition2 > (300 - radius)) {
ySpeed2 = -ySpeed2;
}
else if (yPosition2 < radius){
ySpeed2 = -ySpeed2;
}
xPosition2 += xSpeed2;
yPosition2 += ySpeed2;
- 小应用程序是300个像素乘以300个像素。
radius
存储圆的半径。xPosition
和xPosition2
存储两个球的x坐标。yPosition
和yPosition
存储用于两个滚珠的y坐标,xSpeed
和xSpeed2
商店两个球在x的速度。ySpeed
和ySpeed2
存储两个球的y速度。
欢迎SO,鲍勃。这实际上是一个数学问题,而不是一个编程问题,因为没有办法做到你想要的内容到Java语言中。为了让你开始,但是,这样想吧:检测碰撞意味着检测球何时会重叠或碰触,对吗?你知道他们的立场和规模.... – Pops 2010-04-20 21:13:18
雅,但我想不出任何东西。我尝试着通过数学来完成,最后我得到了彼此相交的球以及大约30行无用代码 – 2010-04-20 21:20:58