Java编程实现游戏中的简单碰撞检测功能示例
本文实例讲述了Java编程中的简单碰撞检测功能。分享给大家供大家参考,具体如下:
今天在家正在写一个坦克大战的小游戏来玩,遇到了一个简单的圆和圆的碰撞检测的小问题,
碰撞检测的过程处理主要有以下三步:
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数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关文章
详解spring security 配置多个AuthenticationProvider
这篇文章主要介绍了详解spring security 配置多个AuthenticationProvider ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05
SpringBoot @ExceptionHandler与@ControllerAdvice异常处理详解
在Spring Boot应用的开发中,不管是对底层数据库操作,对业务层操作,还是对控制层操作,都会不可避免的遇到各种可预知的,不可预知的异常需要处理,如果每个处理过程都单独处理异常,那么系统的代码耦合度会很高,工作量大且不好统一,以后维护的工作量也很大2022-10-10
springboot中如何将logback切换为log4j2
springboot默认使用logback作为日志记录框架,常见的日志记录框架有log4j、logback、log4j2,这篇文章我们来学习怎样将logbak替换为log4j2,需要的朋友可以参考下2023-06-06


最新评论