【发布时间】:2021-10-15 15:19:45
【问题描述】:
有 3 个文件。火箭游戏.py、火箭.py、设置.py。 Rocket.py 的内容。
键“向上”箭头什么也不做。键“向下”箭头将船向上移动。
如果我将最后一行更改为“self.y += self.settings.ship_speed”,向下箭头将船向下移动。但是为什么游戏不勾上箭头呢?
def update(self):
"""Update the ship's position based on the moving flag."""
if self.moving_right and self.rect.right < self.screen_rect.right:
self.x += self.settings.ship_speed
elif self.moving_left and self.rect.left > 0:
self.x -= self.settings.ship_speed
if self.moving_up and self.rect.top < self.screen_rect.top:
self.y += self.settings.ship_speed
elif self.moving_down and self.rect.bottom > 0:
self.y -= self.settings.ship_speed
键“向上”箭头没有任何作用。键“向下”箭头将船向上移动。 如果我更改 self.y += self.settings.ship_speed,向下箭头将船向上移动,我明白我为什么。但是为什么没有向上箭头呢?
如果我打印事件,它会看到我按下向上箭头,但火箭没有移动。
其他问题,顶部和底部边界似乎不存在。
屏幕的左下角分别被描述为坐标0、0。我确实尝试将底部边界设置为 0,但船仍然在屏幕下方飞行。左右边界工作正常。 python 编程新手,我尝试阅读 pygame API for rect 但它似乎没有我需要的参考。它确实列出了顶部和底部,而不是上下。 我在rocket_game.py 和rocket.py 中都尝试了多种方法。
没有错误消息,最终目标是添加在 screen_rect 边界内上下移动、左右移动的功能。
【问题讨论】:
标签: python python-3.x pygame