如何增加速度的加速度?

时间:2018-08-06 07:32:14

标签: python

我有一个称为箭头的图像。我想在按下空格键时射箭。我通过使用已经拥有的角度来计算velxvely来做到这一点。

velx = math.cos(angle)*10
vely = math.sin(angle)*10

我在图片的x坐标上添加了velx,在图片的y坐标上添加了vely,因此我可以拍摄箭头。

现在,我想将vely加速-9.8。我该怎么办?

1 个答案:

答案 0 :(得分:2)

哦,经典的2D游戏物理!让我们考虑一下一切 米和秒,因为这就是你的引力常数-9.8 看起来像。

所以您的位置(以米为单位)

posx = 0
posy = 0

您的速度(以m / s为单位),已经瞬时 加速到现在的速度(即弓箭手的手臂向箭头施加了10 m / s的速度),

velx = math.cos(angle) * 10
vely = math.sin(angle) * 10

您的重力(以m / s ^ 2为单位)

gravx = 0
gravy = -9.8

所以现在在您的物理模拟循环中,对于每一帧,您要做的就是

timestep = 0.1  # seconds to simulate this frame; this depends on FPS, etc.

# move the object according to its velocity
posx += velx * timestep
posy += vely * timestep

# apply acceleration based on gravity (you could add wind, etc. here)
velx += gravx * timestep
vely += gravy * timestep

您可以在可汗学院的 令人震惊的Pixar in a Box series