如何在Box2d中实现子弹时间?

5

我想要在我的box2d应用程序中实现某种子弹时间效果,通过谷歌搜索,我发现了一篇文章,他们建议改变时间步长(例如从1/30到1/60),但这很快被标记为不良做法,我只需要一个基本的开/关触发器来慢动作播放,你有什么好的想法吗?


4
模拟可能不太准确,我认为在一些时间步长内,aabb计算可能会出错,甚至可能允许子弹等物体穿透,而且像预热这样的事情可能会有点混乱。但对于Ricardo的情况,也许只要尝试一下,如果真的出现问题再担心也不迟。 - iforce2d
好的,我会试一下看看会发生什么,谢谢。 - Ricardo Sanchez
从技术上讲,对于子弹时间,时间步长将变得更短,因此计算将变得更加准确,但重点是,一切的行为都会改变(有时微妙,有时显著),因为通过改变时间步长,您正在改变模拟的性质。这就像改变整个宇宙的光速一样。它会搞砸一切。当然,除非这正是你想要的。 - Steven Lu
2个回答

0

Box2D 2.0+开始,改变时间步长不会对模拟产生负面影响,因此只需使用较小的时间步长即可。


在紧急情况下可行。但会把确定性扔到窗外,掉进熔岩坑里。 - Steven Lu

0

这可以通过改变时间步长来完成。

改变时间步长将轻微改变模拟,并使其不那么确定。

是否可以接受这取决于物理模拟的确定性有多重要。

如果这是单人游戏而不是硬核游戏,您可能不需要担心它。

我在一个单人iOS射击游戏中使用了子弹时间,并且一切正常。宇宙不会崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接