2

我正在游戏中编写一个简单的球弹。更新几乎看起来像:

velocity += gravity;
velocity *=0.9;
pos += vel;

有没有办法设置发射的角度和功率以击中鼠标指定的点?像 peggle,http://youtu.be/4KbNiWsgJck?t= 45s

我知道有一个我几年前使用过的解决方案,但我找不到它。我相信它把我的更新变成了一个二次公式,或者推导出来什么的。它有两个用二次方程求解的解。

ps-希望这可以是 3D,但我也可以使用 2D 解决方案,因为我的曲线是 2D

有什么帮助吗?谢谢,丹

4

1 回答 1

1

是的,你可以这样做。如果你可以改变角度和速度,你就会拥有比你需要的更多的可变性,所以你必须找到一组合理的参数,这并不难。基本方程是:

x = x 0 + t*v 0x
y = y 0 + v 0y t + (1/2)a y t 2

在这里,x 和 y 将是您要击中的点,而 t 将是您击中它们的时间。 t不会出现在最终解决方案中,但您将使用它作为中介来计算您想要的值。

然后,基本上,为 v 0x选择一个合理的值。使用 x 方程,找出击中目标时的t 。然后将该值代入 y 方程,求解 v 0y。然后,这将为您提供一对 v 0x和 v 0y值,它们可以击中目标。

于 2013-01-07T16:26:44.177 回答