我一直在看Pygame教程来学习模块,它来到了教练向你展示如何让你的角色跳跃的部分。然而,我发现不可能理解他们写下来的代码,他们也没有很好地解释。
谁能帮我分解下面的代码,这样我就能确切地理解发生了什么?是否有更简单的方法来编写角色的跳跃?请记住,我已经设置了代码,按空格键使该代码激活。
Isjump = False
Jumpcount = 10
#code for spacebar activation here, turns Isjump to True#
if Jumpcount >= -10:
Neg = 1
if Jumpcount < 0:
Neg = -1
y -= (Jumpcount ** 2) * 0.5 * Neg
Jumpcount -= 1
else:
Isjump = False
Jumpcount = 10
初始Jumpcount
设置为10
Jumpcount = 10
跳转运行直到Jumpcount
小于或等于-10。因此,一次跳跃正好需要21个周期:
if Jumpcount >= -10:
Neg
是"符号"Jumpcount
。如果Jumpcount
大于等于0,则为1,否则为-1:
Neg = 1
if Jumpcount < 0:
Neg = -1
在每一帧中,玩家的y
坐标被二次函数(Jumpcount ** 2) * 0.5
改变。
y -= (Jumpcount ** 2) * 0.5 * Neg
由于这一项与Neg
相乘,所以当Jumpcount
大于0时为正,当Jumpcount
为0时为0,否则小于0。
当Jumpcount
的量大时,y
坐标的变化大于量小时。参见21个循环中(Jumpcount ** 2) * 0.5 * Neg
的值:
50.0, 40.5, 32.0, 24.5, 18.0, 12.5, 8.0, 4.5, 2.0, 0.5, 0.0,
-0.5, -2.0, -4.5, -8.0, -12.5, -18.0, -24.5, -32.0, -40.5, -50.0
一开始数值是正的,玩家跳跃。最后,数值是负值,玩家摔倒了。
这些值的和为0。因此,y
-坐标在末尾和开头具有相同的值。
参见如何让角色在Pygame中跳跃?