这个算法是如何让角色在pyGame中跳跃的呢? [英] How does this algorithm make the character jump in pygame?

查看:13
本文介绍了这个算法是如何让角色在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:

NegJumpcount的签名(&Q;)。如果Jumpcount大于或等于零,则为1,否则为-1:

Neg = 1
if Jumpcount < 0:
    Neg = -1

在每一帧中,玩家的y坐标由二次函数(Jumpcount ** 2) * 0.5改变。

y -= (Jumpcount ** 2) * 0.5 * Neg

此项乘以NegJumpcount大于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?

这篇关于这个算法是如何让角色在pyGame中跳跃的呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆