0

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

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

我该怎么做呢?

4

1 回答 1

1

对于更复杂的形状,您将不得不使用多边形算法中的点:

检查凸多边形(你的三角形)比凹多边形更简单(参见第一篇链接文章)。

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

于 2013-01-29T12:39:39.570 回答