【问题标题】:AS2: Hittest without movieclip?AS2:没有电影剪辑的最热门?
【发布时间】:2011-07-11 11:05:24
【问题描述】:

我在舞台上有数千个简单的影片剪辑(矩形),它们正在与另一个矩形进行碰撞测试,问题是我现在有这么多的影片剪辑,导致我的 SWF 播放有些断断续续。

我不能没有这些 MC,那么有没有人知道一种纯粹针对绘制的向量进行 hitTest 的方法? (矢量由动作脚本绘制)。我也尝试将它们缓存为位图,但它们是非常小的矩形,并且在位图时显得非常不稳定和难看。

最好将所有矩形视为一个 MC 并分别对每个矩形进行命中测试。

【问题讨论】:

    标签: flash actionscript actionscript-2


    【解决方案1】:

    hitTest 方法本身需要大量计算,这就是为什么在处理数千次碰撞时需要尽量减少使用该方法或实现自己的碰撞检测方法。

    Sham Bhangal 的“Flash Hacks”一书中描述了检测多重碰撞的简单方法(O'Reilly 2004)。该方法的核心思想是将所有影片剪辑添加到一个容器影片剪辑中,然后测试该容器影片剪辑与点(或对象)的碰撞。您可以在网络上搜索此 hack 的再版。

    如果该方法不适合您,那么您可能需要处理矩形碰撞检测技术(并摆脱 hitTest)。您可以阅读此article,其中显示了检测轴对齐边界框或 AABB 与其他对象之间的碰撞的方法。定向边界框或 OBB 之间的碰撞检测更复杂,但您可以找到并修改 existing algorithms。我在OBB collsion detection demo 中使用了上面链接中的算法。我已经包含了它的源代码(AS3 而不是 AS2),所以你也可以检查一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多