首页 > 解决方案 > Pygame 按键与指南的工作方式不同

问题描述

我遵循了蛇游戏教程,但由于某种原因我无法QUIT匹配:

class Game:

    ...

    def handle_keys(self):
        for event in pg.event.get():
            pressed = pg.key.get_pressed()
            if event.type == QUIT or pressed[QUIT]:
                pg.quit()
                sys.exit()
            elif event.type == pg.KEYDOWN:
                if pressed[pg.K_UP]:
                    self.snake.turn(self.UP)
                elif pressed[pg.K_DOWN]:
                    self.snake.turn(self.DOWN)
                elif pressed[pg.K_LEFT]:
                    self.snake.turn(self.LEFT)
                elif pressed[pg.K_RIGHT]:
                    self.snake.turn(self.RIGHT)

    def run(self):
        while True:
            self.clock.tick(10)
            self.handle_keys()

蛇移动得很好,但无论我尝试哪种方法,甚至两者结合使用,QUIT 按钮似乎都不起作用,如上所示。我使用的是最新的 Ubuntu 20.04 版本,不确定这是否会有所不同。我注意到and的值与event.TYPEandpressed[QUIT]完全不同。这是我对 pygame 的第一次尝试,只是不知道为什么没有得到与我正在遵循的指南相同的输出。pg.QUITpg.locals.QUIT

编辑:

我在网上找到的解决方案都不起作用,下面的“相关”或“建议”也不起作用。在为此苦苦挣扎了一个多星期后,我打算切换到 Unity3D。

标签: pythonpygameexitpython-3.8

解决方案


也许试试

if event.type == pg.QUIT:

删除or pressed[QUIT].
不要用pg.locals.QUIT,试试pg.QUIT


推荐阅读