当前位置: 华文问答 > 游戏

FPS类游戏子弹是有飞行时间的吗?

2020-05-07游戏

可以有也可以没有。

没有的叫做 hitscan,在发射的那一刻进行命中扫描。这时候等同于武器发射了一束激光,游戏计算这束激光穿越了哪些表面来判断结果。不能穿墙的子弹扫描到墙就结束了,可以穿墙的子弹还要考虑墙后面能扫描到什么。

对于 hitscan 来说,即使游戏有动画显示子弹飞行的过程,飞行结果也跟命中无关,命中在开枪那一刻已经计算了。如果动画时间过长,例如说射击距离非常远,那会让人感觉到不真实。

需要计算飞行时间的叫做 projectile,也就是投射物。游戏需要每一帧都要计算这个投射物飞到哪里了,是否跟其它物体发生碰撞了。因为飞行过程中其它物体并非完全静止,所以这不是计算飞行时间,而是模拟飞行过程。

不同游戏会选择不同的模式。同一个游戏不同武器选择不同方式也很常见。用子弹的武器 hitscan 实现起来很方便,而且符合大家对现实中的子弹预期,打击感也好。但现实中就飞得慢(不是瞬时完成打击)的东西,例如说榴弹、火箭炮,做成 hitscan 就很违反直觉,只能做成 projectile。