例如,在Peggle或Apple Jack中,用户可以在用户请求发射射弹之前在曲线上移动,以显示球(或洗衣机/熊猫或其他)即将要去的地方。我知道我需要使用一个方程来绘制点,但我不是数学家(不再是:()。任何人都可以如此善良地向我提供正确的等式并告诉我应该用什么替代来获得我的X给定一定时间和初始速度的Y值。
答案 0 :(得分:2)
模拟可能是最简单的路线:创建一个具有指定属性的虚拟对象并创建一个循环来应用力并说将位置输出到数组然后显示它,说:在两个位置之间划一条线,或在每个位置画一个射弹的“幽灵”。
模拟的一个好处是你可以通过改变记录位置的频率来控制速度和准确度的平衡。
答案 1 :(得分:2)
看看我对this question的回答。
从答案中得出,你应该使用的公式是:
s = s₀ + v₀t + ½at²
(位移等于:初始位移,加上初始速度乘以时间,加上半加速度乘以时间平方。)
除了时间之外的所有东西都有一个向量(加速度将是你的向下重力)。因此,只需在X轴和Y轴上使用该等式即可。
当然 - 保证绘制路径与预测等式完全匹配的唯一方法是它们是否相同。这是我可以看到的唯一方法,可以添加对预测反弹的支持。
如果您的实际游戏使用了不同的东西(如完整的物理模拟器),并且您不需要预测反弹,并且您不必完全准确 - 那么这将为您提供合适的预测近似值
答案 2 :(得分:1)
如果这是一个遵循简单弹道轨迹的射弹,你可以使用这里提供的封闭形式表达式:
http://en.wikipedia.org/wiki/Trajectory_of_a_projectile
如果不是,那么为每个(小)时间步骤模拟所有力对身体的影响可能要简单得多,相应地更新其位置和速度。这种技术更加健壮;你可以在不改变基本方法的情况下为问题增加更多的复杂性。
答案 3 :(得分:0)
你可以使用牛顿大约的方法。求解。这里的问题是你需要集成 - 所以你必须在精确度和计算时间之间进行权衡。
RK4 是我认为最好的方法 - 速度快且非常精确。
您可以在http://gafferongames.com/game-physics/integration-basics/
阅读更多信息