2015-02-07 75 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公式和矩形的边缘。然后检查这个点是否在矩形的边缘,或者是否在矩形的外面。