如何在游戏中实现a弹枪?


14

手枪和机关枪很容易-您可以让子弹沿特定方向飞行,所以我已经实现了。另一方面,弹枪会对特定区域(如圆锥形区域)中的任何物体造成损坏。我应该如何实施?我在这里有一些建议,但是我可以使用一些建议:

  • 将一颗子弹分裂成多个小子弹,它们自身造成的伤害较小,但以相似的方向飞行(更近的敌人更有可能被击中)
  • 不使用子弹-仅具有have弹枪的粒子效果,并根据位置/方向等计算敌人受到的伤害。
  • 有一个大的看不见的子弹(例如一个立方体)会损坏东西,还有一个粒子效果,使它看起来像是shot弹枪。

提前致谢!


这些选项都是有效的(虽然是第一个选项,但为什么不从多个子弹开始?),并且该决定取决于您的游戏设计。
congusbongus

相关:精度与距离公式以及“火锥”可能是一个不错的搜索条件。
MichaelHouse

Answers:


21

大多数游戏将shot弹枪作为一种武器,可以一次发射多个弹丸,但是每个弹丸都有一定的随机性,可以离开演员。在大多数现代的第一人称射击游戏中,几乎所有武器在射击时都会散布至少一部分,以使其在远距离上的准确性降低,因此shot枪可以使用相同的实现方式。

实施简单:如果您想扩展10°,并且玩家将方向看成垂直0°和水平50°,则弹丸将使它们处于-5°至+ 5°垂直和45°至55°水平的角度。

更好的实现:将弹丸分布在玩家十字准线周围的矩形区域内,而不是矩形区域内。

感觉到的远距离效率下降是由于弹丸的扩散所致,这意味着远距离的小目标不会被所有的目标击中。当您想进一步强调这一点以使shot弹枪成为纯短程武器时,您还可以减少每枚弹丸在其传播的每个游戏逻辑框架中的伤害。

在自上而下或侧向滚动的射击游戏中,散布所有武器的情况并不常见,因为游戏区域太小而无法理解,但是当您想要像a弹枪这样的武器时,情况就完全不同了可以使用这种技术,只是您不需要关心第三维。另外,您也可以以固定角度(如-6°,-4°,-2°,0°,2°,4°,6°)发射子弹。在2D环境中,它看起来不像3D环境中那样人为,挑战游戏者会喜欢它,因为它减少了机会。


更好的实现同样容易。第一种方法需要两个随机角度(水平和垂直),第二种方法(离轴[0,+ 5°]并沿轴[
0,360

@MSalters不能将弹丸均匀分布在圆中。相反,它将它们围绕轴集中。这可能是,也可能不是效果。要在圆内获得均匀的随机分布,请参见此答案
Daniel AA Pelsmaeker

@Virtlink:是的,尽管圆内的均匀概率密度不是我想要的。正态分布往往是最适合这样的物理事物的,而且它做起来也特别简单:只需将ϑ值散布为一维正态分布,将φ值散布为1D正态分布即可。无需转到双极坐标。
左转

这是讨论discussing 弹枪传播的页面,您可以看一下它们的作用。
AJMansfield
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.