【问题标题】:Implementing Wind speed in our projectile motion?在我们的弹丸运动中实施风速?
【发布时间】:2010-12-10 19:04:14
【问题描述】:

我正在尝试使用 java 制作一个类似于 Scorched earth 或 Pocket Tanks 的坦克游戏,因为用户可以定义弹丸的角度和速度。我已经在互联网上寻找一种在我们的弹丸系统中实现风速的方法。如何将风速添加到弹丸运动中?

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

【问题讨论】:

    标签: java game-physics


    【解决方案1】:

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

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

    请注意,表面积是暴露在风中的有效面积。例如,如果你的弹丸是圆盘形的,那么当风吹向圆盘的表面时,阻力会非常大,而如果风吹过圆盘,阻力就会很小。

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

    【讨论】:

    • 对于您的游戏,我会使用(风速)^2 *(表面)*(弹丸面因子)之类的东西,其中“弹丸面因子”是接近 0.3 左右的值。您的决定之一将是设置我所说的“弹丸面因素”。该值应小于 1,因为您的游戏可能不是射击盘子。
    【解决方案2】:

    为了简单起见,如何根据风的方向与弹丸的行进方向相比较来增加或减少水平速度。

    如果是顺风,它会随着时间的推移增加一定的速度,直到达到顺风可以对弹丸本身贡献的最大速度,顺风几乎也是如此,除了在某个特定的与一定水平射弹速度的角度,足够高速度的逆风可能会逆转水平速度。

    弹丸在空中停留的时间越长,风就需要越多的时间来发挥它的魔力。

    【讨论】:

      【解决方案3】:

      或者,您可以只使用常规力,而不是使用阻力。如果您的对象都具有相同的大小和形状(横截面形状),只需选择一个 F 并将该力应用于您的速度计算。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多