本文實例講述了Java編程中的簡單碰撞檢測功能。分享給大家供大家參考,具體如下:
今天在家正在寫一個坦克大戰的小游戲來玩,遇到了一個簡單的圓和圓的碰撞檢測的小問題,
碰撞檢測的過程處理主要有以下三步:
1.碰撞檢測(Collision Detection):返回兩個或多個物體是否發生碰撞的布爾判斷。
2.碰撞確定(Collision Determination):找到物體之間實際相交位置。
3.碰撞響應(Collision Response):針對兩個物體之間的碰撞決定采取何種操作。
下面是關于兩個圓與圓之間的簡單碰撞判斷處理:
簡而言之就是當兩個圓的實際距離小于半徑和的時候就表示發生碰撞,此時修改布爾型判斷標志便可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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程序設計有所幫助。
原文鏈接:http://blog.csdn.net/qq_33213136/article/details/76239250