python - 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.TYPE
andpressed[QUIT]
完全不同。这是我对 pygame 的第一次尝试,只是不知道为什么没有得到与我正在遵循的指南相同的输出。pg.QUIT
pg.locals.QUIT
编辑:
我在网上找到的解决方案都不起作用,下面的“相关”或“建议”也不起作用。在为此苦苦挣扎了一个多星期后,我打算切换到 Unity3D。
解决方案
也许试试
if event.type == pg.QUIT:
删除or pressed[QUIT]
.
不要用pg.locals.QUIT
,试试pg.QUIT
。
推荐阅读
- react-native - React Native 远程 JSON 配置文件 react native
- bokeh - 我可以在 Bokeh HoverTool 文本中添加一个很酷的 Unicode 上/下三角形吗?
- html - 我该如何停止
- 重叠的元素
- python - 如何在 GeoPandas 的图例中显示两个颜色图
- r - 如何在分组数据框中创建一列百分比?
- postgresql - Auth Middleware 仅适用于一条快速路由
- php - 在“选择选项”按钮上显示一个弹出窗口 - Woocommere
- reactjs - 为什么我必须单击 TextField 两次才能显示我的列表?
- pyspark - PySpark 将索引列传递给 element_at()
- c++ - 模板如何避免无限递归?