Actionscript 使用迭代采样进行碰撞检测-我应该使用引擎(box2d)还是自己滚动?

Actionscript 使用迭代采样进行碰撞检测-我应该使用引擎(box2d)还是自己滚动?,actionscript,collision-detection,Actionscript,Collision Detection,感谢您抽出时间阅读我的问题 我正在写一个2d自上而下的射击游戏。它目前正在使用Box2d作为物理引擎。问题是,它并没有充分利用Box2d,只是用于碰撞检测和底层的速度/旋转更新循环。任何增加真实物理的计划都只是吸引眼球,而不是改变游戏规则 现在我选择Box2d是因为我通过了另外两个物理引擎,它们无法处理我检测到的碰撞类型。我正在创造几个速度非常快的“子弹”,我不想让它们瞬间击中目标。JigLib和Flixel都有相同的问题-在帧更新时子弹不是重叠的敌人,因此不会被检测为碰撞(即子弹穿过敌人,因为

感谢您抽出时间阅读我的问题

我正在写一个2d自上而下的射击游戏。它目前正在使用Box2d作为物理引擎。问题是,它并没有充分利用Box2d,只是用于碰撞检测和底层的速度/旋转更新循环。任何增加真实物理的计划都只是吸引眼球,而不是改变游戏规则

现在我选择Box2d是因为我通过了另外两个物理引擎,它们无法处理我检测到的碰撞类型。我正在创造几个速度非常快的“子弹”,我不想让它们瞬间击中目标。JigLib和Flixel都有相同的问题-在帧更新时子弹不是重叠的敌人,因此不会被检测为碰撞(即子弹穿过敌人,因为它们移动得太快)

我转到Box2d是因为它的迭代碰撞采样,以及对实体的SetAsBullet方法。而且效果很好!但是现在Box2d也给我带来了麻烦——每秒产生几发子弹,或者同时严重降低了我的fps

所以我删除了Box2d以确认它不是渲染限制。。。增加了我自己的速度/旋转系统,我可以每秒发射数百发子弹。伟大的但它缺乏任何类型的碰撞检测

因此,问题是:

1) 我应该编写自己的迭代碰撞引擎吗

2) 我是否应该再试一次Box2d,也许可以进行一些调整以加快添加新实体的速度

3) 是否有其他替代方案,可能是专门从事这一领域的轻量级物理引擎

4) 你知道还有什么其他的技术或设计模式可以使用吗

非常感谢你的帮助


编辑:我应该注意到,不仅有子弹,还有更大、更慢的射弹。我考虑过光线将线段投射到投射物的先前位置,并捕捉交点,但这对较大的对象不起作用:(

这取决于你的情况有多复杂,如果你擅长数学和物理,你可以推出一个快速引擎,处理简单碰撞的速度比你使用box2d学习的速度更快,但是如果已经发明了很多bycicle,为什么要有人发明bycicle呢?所以选择一个你喜欢的,试试使用吧,我建议使用box2d

为什么要重新发明?因为现在的自行车看起来像这样:)