2015-02-07 80 views
0

我正在製作Android遊戲,並且遇到了一些位圖碰撞檢測問題。問題是其中一個位圖是三角形,第二個是矩形。我不知道如何,因爲現在我使用此代碼檢測它們之間的碰撞:如何檢測三角形位圖碰撞android?

if(policeY<((canvas.getHeight()/20)+eye.getHeight()) && (policeY+police.getHeight())>(canvas.getHeight()/20)){ 
      if((policeX+police.getWidth())>triangleLeft && policeX<(triangleLeft+eye.getWidth())){ 
       //collision 
       play = false; 
      }else if((policeX+police.getWidth())<triangleLeft && policeX>(triangleLeft+eye.getWidth())){ 
       //collision 
       play = false; 
      } 

     } 

然而,該代碼同時處理他們作爲長方形和三角形的時候甚至沒有接觸矩形這會導致衝突甚至。

Like in this picture the circled area is considered as a collision

回答

0

我已經建立了問題作爲交叉點的問題。將三角形的邊緣定義爲線條,然後使用line-line intersection公式和矩形的邊緣。然後檢查這個點是否在矩形的邊緣,或者是否在矩形的外面。