在我们的射弹运动中实现风速?

时间:2010-12-10 19:04:15

标签: java game-physics

我试图用焦土或口袋坦克的方式在 java 中进行坦克游戏,因为用户定义了射弹的角度和速度。我已经浏览了互联网,以便将风速实施到我们的射弹系统中。你如何将风速增加到射弹运动?

我的程序计算速度的X加速度和Y加速度,并考虑到达的最大高度,到达最终点所需的总时间以及发射的射弹的角度。

3 个答案:

答案 0 :(得分:3)

  

如何将风速添加到射弹运动中?

尝试使用drag force = A * |Δv| *Δv*(表面积)+ B *Δv*表面积,其中Δv=(风速) - (抛射物速度),并将其添加到模拟中的其他力。 (然后使用牛顿定律(ΣF= ma)来计算加速度)

请注意,表面区域是暴露在风中的有效区域。例如,如果您的射弹是圆盘形的,如果风在盘面上吹,则会产生非常高的阻力,而如果风吹过圆盘则会产生低阻力。

另请注意,这不包括阻力矩(在射弹的不同点处施加的力导致非零净扭矩,因此射弹的角动量的变化),例如,在风车或落枫树种子上。这可能比拖曳力更难建模。

答案 1 :(得分:2)

保持简单如何根据风的方向与弹丸行进方向相比增加或减去水平速度。

如果它是一个尾风,它会随着时间的推移增加一定的速度,直到它达到尾风对弹丸本身有贡献的最大速度,对于头风来说几乎都是如此,除非在某个时候与弹丸水平速度的角度,足够高速的头风可能会使水平速度反转。

射弹在空中的时间越长,风就越有时间发挥其魔力。

答案 2 :(得分:2)

或者不是使用拖拽力,而是可以实施常规力量。如果您的对象具有相同的大小和形状(交叉形状),只需选择一个F并将该力应用于您的速度计算。