【发布时间】:2019-11-30 23:47:39
【问题描述】:
我是初学者,我的代码有问题。在这里您可以看到我的代码的简短摘录。
这是我创建的一个简单的蛇游戏,但我试图添加一个暂停。我知道了,但是当我开始暂停时,我无法关闭它。
我的代码中可能有一个基本错误,所以我无法前进。我希望你能帮助我。
提前谢谢你!
def checkquit(e):
running = True
pause = False
for ev in e:
if ev.type == pygame.QUIT:
exit(0)
running = True
if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
quit(0)
running = True
if ev.type == pygame.KEYDOWN and ev.key == pygame.K_p:
pause = False
while pause:
#running = False
pause = True
red = (255,0,0)
screen = pygame.display.set_mode((800,500))
screen.fill((0,0,0))
my_font = pygame.font.SysFont("monospace", 50)
my_font_two = pygame.font.SysFont("monospace", 10)
text1 = myfont.render("Pause!", 100, red)
text2 = myfont.render("Please restart the game", 100, red)
screen.blit(text2, (10, 200))
screen.blit(text1, (230, 100))
pygame.display.update()
for ev in e:
if ev.type == pygame.QUIT:
pause = False
if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
pause = False
if ev.type == pygame.KEYDOWN and ev.key == pygame.K_p:
pause = True
【问题讨论】:
-
使用组合键“KEYDOWN+ESC”来取消暂停游戏是理想的行为吗?
-
我正在尝试关闭我的暂停建议。当我按下键 p 时会出现暂停窗口,但如果我想关闭暂停窗口,它不会关闭
-
但是根据您的代码,您取消暂停的关键事件使用 Escape,而不是 P:
ev.key == pygame.K_ESCAPE: pause = False由于您的代码只检查 KEYDOWN 事件,看起来游戏会在按住时取消暂停逃生,这可能会导致问题,因为逃生也会退出游戏。 -
但是如果我将 K_ESCAPE 更改为 pause = True 也没关系。无论如何,当我按 p 键时,游戏就会暂停。
-
暂停时按住 ESC 键会怎样?