我应该多久计算一次子弹的位置?

在“战地”或“阿尔玛”这样的游戏中,每秒钟计算一颗子弹的位置是多less次?

你应该使用弹丸只用于比较慢的“子弹”,如榴弹发射器或RPG的手榴弹。

对于从枪中射出的子弹等速度非常快的子弹,可以使用光线投射(或射线世界相交testing)。 射线从射击枪的炮管(射线的起源)向射击方向(射线的方向)射出。 如果射线击中某物,则命中注册到代码处理子弹击中之后,延迟与射​​线源的命中点距离成比例。

如果将平均炮口速度设为1 km / s,则可以使用简单time = distance / speed公式计算时间延迟。 在大多数情况下,距离不会超过100米(除非使用狙击步枪)。 如果延迟大于0.1秒,则可以检查代码处理子弹命中对象命中(或其边界框)是否仍包含命中点。 如果是这样,子弹已经击中了这个对象。

你可以进行大量的研究,找出你在游戏中使用的每把枪的初速,并分别用于每支枪,或者你可以使用一个平均数字。