如何让角色跳过 pygame 中的障碍

How to make a character jump over an obstacle in pygame

我正在尝试让角色能够跳过障碍。当角色在障碍物中时(在障碍物的两点之间和障碍物顶部下方),我希望程序退出。但是,即使角色跳过障碍物,也会执行 pygame.quit() 。我该如何解决?

我的代码有问题。

if ((playerdino.x+55 > crator1loc) and (playerdino.x>crator1loc+40)):
    if playerdino.y+70<floorSurface-55:
        print('over the block')
    else:
        pygame.quit()
else:
    pass

完整代码在这里: https://github.com/Hal1903/RunningDino.git

你判断角色是否在障碍物中的逻辑错误:

if ((playerdino.x+55 > crator1loc) and (playerdino.x>crator1loc+40)):

等于

if ((playerdino.x > crator1loc-55) and (playerdino.x>crator1loc+40)):

所以playerdino.x总是大于crator1loc-55

您可以将其更改为

if ((playerdino.x > crator1loc-55) and (playerdino.x<crator1loc+40)):

此外,在您的代码中,您调用 dino.updatedino(speed, win) 就像 dino.updatedino(playerdino, -6, win)。应该是 playerdino.updatedino(-6, win).