我很难弄清楚可拖动对象具有多个边界的对象。HitTest 不起作用,因为当快速拖动时,对象将在 HitTest 触发之前重叠。我想知道是否有更有效的方法来弄清楚这种交互。
我将尝试存储每个矩形 x、y、宽度、高度,然后循环遍历这些矩形,以确定对象是否已触摸并阻止玩家朝该方向拖动。
我很难弄清楚可拖动对象具有多个边界的对象。HitTest 不起作用,因为当快速拖动时,对象将在 HitTest 触发之前重叠。我想知道是否有更有效的方法来弄清楚这种交互。
我将尝试存储每个矩形 x、y、宽度、高度,然后循环遍历这些矩形,以确定对象是否已触摸并阻止玩家朝该方向拖动。
因为您试图检测高速发生的碰撞,所以您需要使用某种形式的扫描多边形碰撞检测。在前一帧和最后一帧之间仅一次采样碰撞总是有失败的机会。
查看扫描碰撞检测的简要说明: http ://howlingmoonsoftware.com/wordpress/?p=300
或者只是搜索“扫描碰撞检测”
如果您在游戏中执行此操作,您可能还会发现使用 Box2D 之类的库将是解决该问题的一个有价值的解决方案。在 Box2D 用语中,您想要的是连续的碰撞检测。 http://www.box2d.org/manual.html