Jumping,一个python解决方案

Jumping,一个python解决方案,python,Python,我想弄清楚如何让一个角色在特定的高度和步数内跳跃,并受到重力的影响。例如,在50步内跳转400px 到目前为止,我可以模拟一个火箭效应,使启动速度很慢,但当50步上升时,它将达到400px的高度,如下所示: HEIGHT = 400 STEPS = 50 g = 2.0 * HEIGHT / (STEPS * (STEPS - 1)) y = 0 velocity = 0 for index in range(STEPS): y += velocity velocity +

我想弄清楚如何让一个角色在特定的高度和步数内跳跃,并受到重力的影响。例如,在50步内跳转400px

到目前为止,我可以模拟一个火箭效应,使启动速度很慢,但当50步上升时,它将达到400px的高度,如下所示:

HEIGHT = 400
STEPS = 50

g = 2.0 * HEIGHT / (STEPS * (STEPS - 1))

y = 0
velocity = 0

for index in range(STEPS):
    y += velocity
    velocity += g

print y, velocity # prints 400.0 16.3265306122
我试着从-16.3265306122开始计算速度,每一步加上g,但这不会导致y=-400,速度=0,就像你想的那样。这样做的结果是y=-416.32653061,速度=4.49112969036e-11


你觉得怎么样

当你增加y(高度)时,你从速度开始看是零,所以在第一步中y的值是零

当您从y=0开始,速度为-16.3265306122时,在第一步中,您将行驶16.32653061,这是差值


尝试使用负值g,而不是负速度。(下降时,你应该感觉到上升时的负面情绪。)

当你增加y(高度)时,你从速度开始看为零,因此在第一步中,y的值为零

当您从y=0开始,速度为-16.3265306122时,在第一步中,您将行驶16.32653061,这是差值


尝试使用负值g,而不是负速度。(下降时,你应该感觉到上升时的负面情绪。)

在第一次跑步时,你使用每一步实际速度的最低值来估计速度随时间的积分。然后,从
velocity+=g
得到的最后一个速度值被打印出来,但从未在积分中使用过。所以换一种方式,你可以从-16开始,这是最后一个之前的值,最后一个实际使用的值。这将得到
-400 0.326530612245
,第二个数字,即新的最后速度,在积分中再次未使用,它是
g
的值。因此,您可以简单地修改代码,不打印未使用的最后速度:

for index in range(STEPS):
    y += velocity
    used_velocity = velocity
    velocity += g
print y, used_velocity

在第一次运行中,您使用速度在每个步骤中实际具有的最低值来估计速度随时间的积分。然后,从
velocity+=g
得到的最后一个速度值被打印出来,但从未在积分中使用过。所以换一种方式,你可以从-16开始,这是最后一个之前的值,最后一个实际使用的值。这将得到
-400 0.326530612245
,第二个数字,即新的最后速度,在积分中再次未使用,它是
g
的值。因此,您可以简单地修改代码,不打印未使用的最后速度:

for index in range(STEPS):
    y += velocity
    used_velocity = velocity
    velocity += g
print y, used_velocity
g=2.0*h/(s*(s-1)),v=-(g*(s-1))g=2.0*h/(s*(s-1)),v=-(g*(s-1))