Pygame:event.type 仅适用于一种情况
Posted
技术标签:
【中文标题】Pygame:event.type 仅适用于一种情况【英文标题】:Pygame : event.type works only for one case 【发布时间】:2021-12-28 08:07:00 【问题描述】:我的 pygame 代码有问题,该代码看起来正确但无法正常工作。 我想根据按下的键做不同的动作;当我放两个案例时,只有一个有效。 我把我的代码放在下面:
gamestate.draw(window)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.type == pygame.K_ESCAPE):
finis = True
if (event.type == pygame.KEYDOWN and event.key == pygame.K_UP):
print("ok")
pygame.display.update()
在这里,当我按下 UP 键时,我的代码在终端中打印“ok”,但当我按住退出键时不会退出。 不是这种特殊情况不起作用,在我按下转义键时它退出并且当我按下向上键时没有打印“ok”。 你有什么想法可以解决我的问题吗?非常感谢!
【问题讨论】:
【参考方案1】:pygame.K_ESCAPE
不是事件类型,但您检查 event.type
:
... and event.type == pygame.K_ESCAPE
应该是:
... and event.key == pygame.K_ESCAPE
通常如果您必须在pygame.KEYDOWN
事件上检查多个键,则使用嵌套的if
s:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
finis = True
if event.key == pygame.K_UP:
print('ok')
您还需要在循环中只调用一次pygame.display.update
(很可能在最后)而不是两次
【讨论】:
以上是关于Pygame:event.type 仅适用于一种情况的主要内容,如果未能解决你的问题,请参考以下文章