欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的简单碰撞检测

程序员文章站 2024-03-16 21:11:16
...

今天在家正在写一个坦克大战的小游戏来玩,遇到了一个简单的圆和圆的碰撞检测的小问题,
碰撞检测的过程处理主要有以下三步:
1.碰撞检测(Collision Detection):返回两个或多个物体是否发生碰撞的布尔判断。
2.碰撞确定(Collision Determination):找到物体之间实际相交位置。
3.碰撞响应(Collision Response):针对两个物体之间的碰撞决定采取何种操作。
下面是关于两个圆与圆之间的简单碰撞判断处理:
简而言之就是当两个圆的实际距离小于半径和的时候就表示发生碰撞,此时修改布尔型判断标志便可。

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);
     }