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);
}
推荐阅读
-
java中的简单碰撞检测
-
java实现 一个数组中只有一个数仅出现了一次,剩下的都出现了K次,求只出现了一次的那个数
-
Java中的日期时间 博客分类: java开发总结 java日期时间格式化java.util.Date
-
java 中的String 和new String 的区别 博客分类: JDK//Demo Stringnew String()
-
hibernate的hql中的java常量会引起性能问题 博客分类: hibernate
-
JAVA中堆和栈的区别 博客分类: JDK//Demo java堆栈
-
Java中的final关键字 博客分类: Java基础 javafinal
-
Java中的static关键字 博客分类: Java基础 javastatic
-
Java中的static关键字 博客分类: Java基础 javastatic
-
给出一个正整数 nnn,请你计算从 111 到 nnn 的所有正整数中,有多少个数字的各位数和是 999,Java