我在舞台上有几千个简单的动画片段(矩形),正在针对另一个矩形进行击打,问题是我现在有这么多的影片剪辑导致我的SWF播放有些不稳定。
我不能没有这些MC,所以有人知道一种纯粹针对绘制的向量命中测试的方法吗? (向量由actionscript绘制)。我也尝试将这些缓存为位图,但它们是非常小的矩形,并且在位图时显得非常不稳定和丑陋。
将所有矩形视为一个MC并对每个矩形进行hittest会很好。
答案 0 :(得分:0)
hitTest方法本身需要大量计算,这就是为什么在处理数千次碰撞时,您需要最小化该方法的使用或实现自己的碰撞检测方法。
Sham Bhangal的书“Flash Hacks”(O'Reilly 2004)中描述了检测多次碰撞的简便方法。该方法的核心思想是将所有movieClip添加到一个容器movieClip中,然后测试该容器movieClip与点(或对象)的冲突。您可以在网上搜索此黑客的重印。
如果该方法不适合你,那么你可能需要处理矩形碰撞检测技术(并摆脱hitTest)。您可以阅读此article,其中显示了检测轴对齐边界框或AABB与其他对象之间碰撞的方法。检测定向边界框(OBB)之间的碰撞更复杂,但您可以找到并修改existing algorithms。我已使用此OBB collsion detection demo中上面链接中的算法。我已经包含了它的源代码(AS3而不是AS2),所以你也可以检查它。