使用盒子进行碰撞

时间:2010-01-31 03:03:14

标签: flash actionscript-3 actionscript collision-detection

我正在尝试使用盒子进行碰撞。我想要准确地了解碰撞,所以我正在考虑制作多个小盒子并以这种方式检查碰撞。这可能是一个愚蠢的想法或一个聪明的想法。谁知道,那就是我问你们的原因。如果我这样做会影响游戏的性能,即使这些盒子是看不见的,也不会在舞台上画出来。

另一个想法是将对象从其中心向外映射出来。像右,左,上,下。我正在创造一个飞行射击游戏,所以这架飞机有一个很长的翼展。我还可以绘制出翼展和尾翼等等。

2 个答案:

答案 0 :(得分:1)

考虑使用边界框/圆圈进行初始碰撞,并考虑使用每像素/详细碰撞(如果该测试通过。

答案 1 :(得分:1)

在游戏和物理引擎中,通过“轴对齐边界框”(AABB)跟踪对象是一种非常常见的方法,也就是说它们的边界指定了框。只要对象与舞台相比较小,这通常可以为您节省很多性能。

这样做的主要原因是有很好的方法可以使用AABB来实现非常快速的碰撞测试,或者更确切地说是非常快速地消除碰撞测试的候选者(当对象的AABB不重叠时)。将每个对象与每个其他对象进行比较需要进行N ^ 2次比较,但保持基于AABB的各种数据结构可以让您在O(N)时间内消除碰撞候选(除了维护结构所需的时间)。

要了解如何完成此操作,您可能希望检查物理引擎,例如box2Dflash,它在内部跟踪AABB以进行碰撞测试。