试图在pygame中制作一个简单的跳跃脚本



最近开始尝试学习pygame,目的是制作一个简单的平台生成器。到目前为止,我已经创造了一个可以左右移动并且受重力影响的球员。我还没有实现对象碰撞。现在我正在尝试制作一个简单的跳转脚本。我目前的垂直移动脚本如下:

if man.y + man.height < ground:
man.yvel += man.velInc
elif man.y + man.height >= ground:
if man.isJump == True:
man.isJump == False
man.yvel = 0
if keys[pygame.K_SPACE] and man.isJump == False:
man.yvel = -20
man.isJump = True
man.y += man.yvel

这是在一个循环中运行的其他东西,如水平运动。ground是一个确定地面y坐标的变量,当前设置为350。窗户的高度是450。如果CCD_ 2被设置为1并且CCD_ 3被设置为32。

我的问题是,当我运行程序时,我只能跳一次,然后再也不能跳了。我仍然可以正常地左右移动。我输入了一个脚本来打印man.xman.yman.isJump。在跳跃之前,man.isJump是"0";"假";,以及之后的CCD_ 8。它永远不会回到虚假。CCD_ 9也读作328。然而,跳跃本身似乎很完美。如果能为解决这个问题提供任何帮助,我将不胜感激,也许还能就如何避免未来发生这样的事情提供一些建议。

您混淆了==(布尔等式(和=(设置变量(

if man.y + man.height < ground:
man.yvel += man.velInc
elif man.y + man.height >= ground:
if man.isJump == True:
man.isJump = False # replace == with =
man.yvel = 0
if keys[pygame.K_SPACE] and man.isJump == False:
man.yvel = -20
man.isJump = True
man.y += man.yvel

最新更新