Bob*_*les 4 java awt collision-detection
我有一个简单的Java小程序,有两个用户控制的球,使用绘制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;
Run Code Online (Sandbox Code Playgroud)
而对于第二球:
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;
Run Code Online (Sandbox Code Playgroud)
radius 存储圆的半径.xPosition并xPosition2存储两个球的x坐标.yPosition并yPosition存储两个球的y坐标,xSpeed并xSpeed2存储两个球的x速度.ySpeed并ySpeed2存储两个球的y速度.使用http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/Point2D.html,那里有一个距离法,如果它小于它们碰撞的半径.
编辑:错误,小于半径*2,对不起
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |