pygame 全屏模式退出

Tel*_*ack 3 python pygame

我正在运行这个小程序,它以全屏模式将图像加载到屏幕上,但是一旦加载该程序将不会通过任何组合键退出,我最终不得不重置计算机以完成我正在做的任何其他事情。

import pygame

pygame.init()
WIDTH=1366; HEIGHT=768
screen = pygame.display.set_mode((WIDTH, HEIGHT), pygame.FULLSCREEN)
pygame.display.set_caption('Katso')
PENGUIN = pygame.image.load("assets/download.png")
MICKEY = pygame.image.load("assets/mickey.jpg")
ADV = pygame.image.load("assets/adv.jpg")
CAT = pygame.image.load("assets/cat.jpg")
FLV = pygame.image.load("assets/flavours.jpg")
HALL = pygame.image.load("assets/hallway.jpg")
x = 0; # x coordnate of image
y = 0; # y coordinate of image
screen.blit(PENGUIN,(x,y)); pygame.display.update()
running = True
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.QUIT()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_1:
            screen.blit(MICKEY,(x,y)); pygame.display.update()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_2:
            screen.blit(PENGUIN,(x,y)); pygame.display.update()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_3:
            screen.blit(ADV,(x,y)); pygame.display.update()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_4:
            screen.blit(FLV,(x,y)); pygame.display.update()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_5:
            screen.blit(CAT,(x,y)); pygame.display.update()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_6:
            screen.blit(HALL,(x,y));pygame.display.update()
pygame.QUIT()
Run Code Online (Sandbox Code Playgroud)

skr*_*krx 5

pygame.QUIT是用于检查事件类型的常量值(整数)。要取消初始化 pygame,您必须调用pygame.quit()(小写),但这实际上不会退出您的游戏,而只会取消初始化已加载的 pygame 模块。我认为如果您已经在基于 tkinter 的编辑器(如 IDLE)中启动游戏,则只需要关闭窗口。

要退出游戏,您可以跳出 while 循环并让 Python 像往常一样结束程序,或者您可以调用sys.exit().

由于您无法在全屏模式下单击“x”按钮来关闭窗口,因此您必须使用像Esc.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                running = False  # Set running to False to end the while loop.
Run Code Online (Sandbox Code Playgroud)