0

我正在创建许多彼此相邻放置的自定义形状(4 个坐标)。我想检测用户何时触摸其中一个形状并确定他们触摸了哪个形状。

我已经知道如何注册触摸并且我已经在其他应用程序中完成了碰撞检测。问题是,如果您将菱形放置在“格子”(不重叠)中,那么您不能简单地查看触摸点是否在 x 和 y 范围内。

本质上,我希望生成一个像素列表,这些像素构成了我可以将我的触摸点与之进行比较的形状。

有人可以帮帮我吗?

编辑:

在此处输入图像描述

点是用户的触摸。由于触摸不与任何边缘接触,我不能使用对象碰撞。如果您将菱形视为矩形,那么在此示例中,程序会认为您已经触及了两者。

4

1 回答 1

1

要确定一个点是否在多边形内,您可以使用此处概述的任何方法,或“ PNPOLY ”算法。

当然——如果你想让事情变得简单,你可以使用Farseer及其碰撞系统为你执行计算(Box2D 和 Farseer 具有相同的功能,所以我为碰撞位提供了 Box2D 链接)。您也可以直接获取给定多个 PolygonShapes 的碰撞点。

于 2012-07-16T20:08:06.630 回答