Java編程實(shí)現(xiàn)游戲中的簡(jiǎn)單碰撞檢測(cè)功能示例
本文實(shí)例講述了Java編程中的簡(jiǎn)單碰撞檢測(cè)功能。分享給大家供大家參考,具體如下:
今天在家正在寫一個(gè)坦克大戰(zhàn)的小游戲來(lái)玩,遇到了一個(gè)簡(jiǎn)單的圓和圓的碰撞檢測(cè)的小問題,
碰撞檢測(cè)的過程處理主要有以下三步:
1.碰撞檢測(cè)(Collision Detection):返回兩個(gè)或多個(gè)物體是否發(fā)生碰撞的布爾判斷。
2.碰撞確定(Collision Determination):找到物體之間實(shí)際相交位置。
3.碰撞響應(yīng)(Collision Response):針對(duì)兩個(gè)物體之間的碰撞決定采取何種操作。
下面是關(guān)于兩個(gè)圓與圓之間的簡(jiǎn)單碰撞判斷處理:
簡(jiǎn)而言之就是當(dāng)兩個(gè)圓的實(shí)際距離小于半徑和的時(shí)候就表示發(fā)生碰撞,此時(shí)修改布爾型判斷標(biāo)志便可。
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))); //實(shí)際距離
boolean ishit=false; //判斷標(biāo)志變量
if(realdistance<safedistance)
{
ishit=true;
}
return (ishit);
}
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解spring security 配置多個(gè)AuthenticationProvider
這篇文章主要介紹了詳解spring security 配置多個(gè)AuthenticationProvider ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05
使用Springboot對(duì)配置文件中的敏感信息加密
這篇文章主要介紹了使用Springboot對(duì)配置文件中的敏感信息加密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
springboot 實(shí)現(xiàn)記錄業(yè)務(wù)日志和異常業(yè)務(wù)日志的操作
這篇文章主要介紹了springboot 實(shí)現(xiàn)記錄業(yè)務(wù)日志和異常業(yè)務(wù)日志的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
java實(shí)現(xiàn)順序結(jié)構(gòu)線性列表的函數(shù)代碼
java實(shí)現(xiàn)順序結(jié)構(gòu)線性列表的函數(shù)代碼。需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-10-10
SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解
在Spring Boot應(yīng)用的開發(fā)中,不管是對(duì)底層數(shù)據(jù)庫(kù)操作,對(duì)業(yè)務(wù)層操作,還是對(duì)控制層操作,都會(huì)不可避免的遇到各種可預(yù)知的,不可預(yù)知的異常需要處理,如果每個(gè)處理過程都單獨(dú)處理異常,那么系統(tǒng)的代碼耦合度會(huì)很高,工作量大且不好統(tǒng)一,以后維護(hù)的工作量也很大2022-10-10
springboot中如何將logback切換為log4j2
springboot默認(rèn)使用logback作為日志記錄框架,常見的日志記錄框架有l(wèi)og4j、logback、log4j2,這篇文章我們來(lái)學(xué)習(xí)怎樣將logbak替換為log4j2,需要的朋友可以參考下2023-06-06
JAVA 根據(jù)Url把多文件打包成ZIP下載實(shí)例
這篇文章主要介紹了JAVA 根據(jù)Url把多文件打包成ZIP下載的相關(guān)資料,需要的朋友可以參考下2017-08-08
利用Java搭建個(gè)簡(jiǎn)單的Netty通信實(shí)例教程
這篇文章主要給大家介紹了關(guān)于如何利用Java搭建個(gè)簡(jiǎn)單的Netty通信,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

