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 <= 0
和 Tesbold.bottom >= HEIGHT
而不是 Tesbold.top >= HEIGHT
和 Tesbold.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
所以我目前正在 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 <= 0
和 Tesbold.bottom >= HEIGHT
而不是 Tesbold.top >= HEIGHT
和 Tesbold.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