3

现在我正在做一个 as2 项目,该项目需要在任何给定时间出现在屏幕上的大量子弹和敌人。问题是,要让每颗子弹正确碰撞,我必须遍历每个敌人以查看距离是否在范围内。每帧循环遍历每个敌人的每个子弹确实是加起来,我的帧速率受到了打击。还有其他方法可以进行此类检查吗?

4

1 回答 1

3

我用于此类碰撞的最佳方法是二叉树方法。

您首先要为包含所有敌人的敌人创建一个外壳,每一帧子弹都会使用简单的命中测试检查它们是否与外壳发生碰撞。然后你需要开始将敌人分成子炮弹,主炮弹将包含两个炮弹,每个炮弹将包含两个炮弹,依此类推。然后,一旦你检查子弹是否击中了主炮弹,你检查它是否击中了 sub-shell-1,如果它已经消灭了一半可能的敌人。然后您继续查看它是否已击中 sub-shell-1-1,如果没有,则它已击中 sub-shell-1-2,无需检查,您再次消除了当前可能性的一半,仅一次命中测试。

:)

于 2012-08-24T09:49:50.170 回答