Pygame 零:Actor.top 不知何故无法正常工作

Pygame Zero: Actor.top somehow not working

所以我目前正在 Pygame 零中编写游戏,我遇到了一个问题。我不希望 character/Actor 移出游戏 window。 Window 由 WIDTH 和 HEIGHT 定义。 “Tesbold”是演员。 当在左侧和右侧尝试时,这会以某种方式起作用。只是上下碰撞不知何故不起作用。这是我使用的功能。稍后在 update() 函数中调用它。

def oob_check(): #Out-Of-Bounce-Check
    if Tesbold.right >= WIDTH:
        Tesbold.right = WIDTH
    elif Tesbold.left <= 0:
        Tesbold.left = 0
    elif Tesbold.top >= HEIGHT:
        Tesbold.top = HEIGHT
    elif Tesbold.bottom <= 0:
        Tesbold.bottom = 0

def update():
    oob_check()

window的左上坐标为(0, 0),window的右下坐标为(WIDTH,HEIGHT)。因此,您需要检查 Tesbold.top <= 0Tesbold.bottom >= HEIGHT 而不是 Tesbold.top >= HEIGHTTesbold.bottom <= 0:

def oob_check(): #Out-Of-Bounce-Check
    if Tesbold.right >= WIDTH:
        Tesbold.right = WIDTH
    elif Tesbold.left <= 0:
        Tesbold.left = 0
    elif Tesbold.bottom >= HEIGHT:
        Tesbold.bottom = HEIGHT
    elif Tesbold.top <= 0:
        Tesbold.top = 0