2013-05-30 89 views
0

我在遊戲中有兩個Path2D對象,一個用於玩家,另一個用於其中一個boss的觸手。我需要使用Path2D,因爲我希望邊界與玩家/觸手一起旋轉,以便在旁邊放置5個像素時無法擊中它。這個問題是我不能使用playerPath.intersects(tentaclPath),因爲Path2D只能檢查矩形的交集,這是一個問題,因爲它在我的遊戲中失敗了使用Path2D的目的。我如何能夠檢查它們是否相交而不將一個路徑轉移到矩形?檢查兩個Path2D之間的交集

回答

2
  1. 確保你的觸手和玩家是封閉的路徑。 (如果沒有,他們將被隱式關閉,你會得到觸手命中時,你不覺得你應該。)
  2. 使用面積類來計算交會,看看它是否是空的

(近似代碼)

import java.awt.geom.Area; 
... 
boolean playerHitByTentacle(Tentacle t, Player p) { 
    Area player = new Area(p.getPath2D()); 
    Area tentacle = new Area(t.getPath2D()); 
    player.intersect(tentacle); 
    return !player.isEmpty(); 
}