问题描述
我一直在看 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
大于或等于零,则为 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
坐标在末尾与开头具有相同的值