pygame直到我关闭它才显示任何东西

时间:2020-03-11 14:35:26

标签: python pygame

我编写了以下代码:

import pygame

from pygame.locals import (
    K_UP,
    K_DOWN,
    K_LEFT,
    K_RIGHT,
    K_ESCAPE,
    KEYDOWN,
    QUIT,
)

pygame.init()


SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))


running = True

while running:
     for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                running = False
        elif event.type == QUIT:
            running = False

screen.fill((255, 255, 255))
surf = pygame.Surface((50, 50))
surf.fill((0, 0, 0))
rect = surf.get_rect()

screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
pygame.display.flip() 

但是在我关闭它之后,它仅显示程序中2/3帧的代码,我知道之前曾问过这个问题,但是循环中存在一些问题,但是就我所知,循环是正确的这段代码?

1 个答案:

答案 0 :(得分:3)

Python使用缩进来控制作用域。您的绘图代码不在游戏循环范围内。如果您将所有绘制代码​​缩进游戏循环中,那么它将一直绘制到退出循环为止。