本文实例讲述了Java编程中的简单碰撞检测功能。分享给大家供大家参考,具体如下:
今天在家正在写一个坦克大战的小游戏来玩,遇到了一个简单的圆和圆的碰撞检测的小问题,
碰撞检测的过程处理主要有以下三步:
1.碰撞检测(Collision Detection):返回两个或多个物体是否发生碰撞的布尔判断。
2.碰撞确定(Collision Determination):找到物体之间实际相交位置。
3.碰撞响应(Collision Response):针对两个物体之间的碰撞决定采取何种操作。
下面是关于两个圆与圆之间的简单碰撞判断处理:
简而言之就是当两个圆的实际距离小于半径和的时候就表示发生碰撞,此时修改布尔型判断标志便可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
private boolean hittank(Tank t){ Point Tank= new Point ((t.getX()+ 40 ),(t.getY()+ 40 )); Point Shell= new Point((( this .x)+ 10 ),(( this .y)+ 10 )); int Tankr= 40 ; //Tank的半径 int Shellr= 10 ; //Shell的半径 double safedistance =Tankr+Shellr; //安全距离 double realdistance = Math.sqrt(Math.pow((Tank.x-Shell.x), 2 )+(Math.pow((Tank.y-Shell.y), 2 ))); //实际距离 boolean ishit= false ; //判断标志变量 if (realdistance<safedistance) { ishit= true ; } return (ishit); } |
希望本文所述对大家java程序设计有所帮助。
原文链接:http://blog.csdn.net/qq_33213136/article/details/76239250