Java編程實現(xiàn)游戲中的簡單碰撞檢測功能示例
本文實例講述了Java編程中的簡單碰撞檢測功能。分享給大家供大家參考,具體如下:
今天在家正在寫一個坦克大戰(zhàn)的小游戲來玩,遇到了一個簡單的圓和圓的碰撞檢測的小問題,
碰撞檢測的過程處理主要有以下三步:
1.碰撞檢測(Collision Detection):返回兩個或多個物體是否發(fā)生碰撞的布爾判斷。
2.碰撞確定(Collision Determination):找到物體之間實際相交位置。
3.碰撞響應(yīng)(Collision Response):針對兩個物體之間的碰撞決定采取何種操作。
下面是關(guān)于兩個圓與圓之間的簡單碰撞判斷處理:
簡而言之就是當(dāng)兩個圓的實際距離小于半徑和的時候就表示發(fā)生碰撞,此時修改布爾型判斷標(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))); //實際距離 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é)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java并發(fā)編程學(xué)習(xí)之Unsafe類與LockSupport類源碼詳析
這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程學(xué)習(xí)之Unsafe類與LockSupport類源碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-06-06Feign遠(yuǎn)程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析
這篇文章主要介紹了Feign遠(yuǎn)程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03利用Java8 Optional類優(yōu)雅如何地解決空指針問題
這篇文章主要給大家介紹了關(guān)于如何利用Java8 Optional類優(yōu)雅解決空指針問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11SpringBoot增強Controller方法@ControllerAdvice注解的使用詳解
這篇文章主要介紹了SpringBoot增強Controller方法@ControllerAdvice注解的使用詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個Controller增強器,可對controller進(jìn)行增強處理,需要的朋友可以參考下2023-10-10