1

例如,在 Peggle 或 Apple Jack 中,用户可以在用户请求发射弹丸之前绕着一条曲线移动,该曲线显示球(或洗衣机/熊猫或其他任何东西)将要到达的位置。我知道我需要使用方程来绘制点,但我不是数学家(不再是:()。任何人都可以为我提供正确的方程并告诉我应该用什么代替来得到我的 X给定特定时间和初始速度的 Y 值。

4

4 回答 4

2

模拟可能是最简单的方法:创建一个具有指定属性的虚拟对象并创建一个循环以施加力并将位置输出到数组然后显示它,例如:在位置之间画一条线或绘制每个位置的弹丸的“幽灵”。

模拟的一个积极方面是您可以通过更改记录位置的频率来控制速度和准确性的平衡。

于 2010-08-09T16:26:56.280 回答
2

看看我对这个问题的回答。

从该答案中得出,您应该使用的公式是:

s = s₀ + v₀t + ½at²

(位移等于:初始位移,加上初始速度乘以时间,加上一半加速度乘以时间的平方。)

除了时间之外的一切都有一个矢量(加速度将是你向下的重力)。因此,只需在 X 轴和 Y 轴上使用该方程即可。

当然 - 保证绘制的路径与您的预测方程完全匹配的唯一方法是它们是否相同。这是我能看到的为您添加对预测反弹的支持的唯一方法。

如果您的实际游戏使用不同的东西(例如完整的物理模拟器),并且您不需要预测反弹,并且您不必非常准确 - 那么这将为您提供合适的预测近似值。

于 2010-08-10T00:51:02.913 回答
1

如果这是一个遵循简单弹道轨迹的弹丸,您可以使用此处提供的封闭式表达式:

http://en.wikipedia.org/wiki/Trajectory_of_a_projectile

如果没有,模拟每个(小)时间步长对身体的所有力的影响可能会简单得多,并相应地更新其位置和速度。这种技术更健壮;您可以在不更改基本方法的情况下为问题增加更多复杂性。

于 2010-08-09T15:15:30.580 回答
0

您可以使用大约牛顿法。解决。这里的问题是你需要整合——所以你必须定义精确度和计算时间之间的权衡。

在我看来, RK4是最好的方法——它速度快而且仍然非常精确。

您可以在http://gafferongames.com/game-physics/integration-basics/阅读更多信息

于 2010-08-09T14:32:40.080 回答