这个算法是如何让角色在pyGame中跳跃的呢?
问题描述
我一直在看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
的签名(&Q;)。如果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。
当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
坐标末尾的值与开头的值相同。
另请参阅How to make a character jump in Pygame?。
相关文章