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