我正在制作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 :(得分:0)
我将问题设置为交叉问题。将三角形的边缘定义为线条,然后将line-line intersection公式与矩形的边缘一起使用。然后检查此点是在矩形的边缘还是在矩形之外。