检测非矩形形状的咔嗒声

时间:2013-01-29 11:32:18

标签: xna-4.0

我是XNA 4.0的新手,有一个我似乎无法弄清楚的问题。到目前为止,我一直在通过创建矩形并检查rectangle.contains方法来检测鼠标点击,但如果我不想检查矩形内部怎么办?

在我的地图的一部分中,我有一个三角形按钮,我想让用户点击,但我想只将它计为一次点击,如果它实际上在三角形内。如果我在三角形周围创建一个矩形,用户可以在纹理区域外单击,如果你知道我的意思。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您必须使用Point in Polygon Algorithm来获得更复杂的形状:

检查凸多边形(您的三角形)比凹形多边形更简单(请参阅第一个链接文章)。

如果您必须进行大量检查并达到性能限制,请考虑使用某种层次结构,QuadtreeLOD系统。例如,您可以为非常复杂的多边形计算额外的边界矩形,如果该点位于矩形内,则仅对多边形进行昂贵的检查。