首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

碰撞檢測算法在 Java ME 中的實現:矩形與圓形碰撞核心邏輯

     編輯:J2ME

碰撞檢測在遊戲中的角色

判斷前方障礙、子彈擊中敵機等,本質皆為兩物體碰撞判斷。複雜形狀可分解為基本形狀組合,分別檢測。

1. 矩形與矩形碰撞:中心點距離法

假設矩形 1:左上 (x1,y1)、寬 w1、高 h1;矩形 2:(x2,y2)、w2、h2。數學條件:

X向:| (x1 + w1/2) - (x2 + w2/2) | <= (w1 + w2) / 2
Y向:| (y1 + h1/2) - (y2 + h2/2) | <= (h1 + h2) / 2

兩條件同時滿足即重疊。代碼直接轉換條件判斷。屬粗略檢測,因實際物體常非標準矩形。

2. 圓形與圓形碰撞:圓心距離平方比較

假設圓 1:左上 (x1,y1)、半徑 r1;圓 2:(x2,y2)、r2。條件:

(x1 - x2)^2 + (y1 - y2)^2 < (r1 + r2)^2

MIDP 1.0 無浮點且開方慢,雙邊平方消去開根號,純整數運算極快。代碼直接實現上式。圓形碰撞最簡單精確。

進階方向

實際開發遇到的碰撞問題遠較此複雜,需其他形式檢測(如矩形-圓形、多邊形、像素級),建議深入研習。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved