我编写了以下代码:
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帧的代码,我知道之前曾问过这个问题,但是循环中存在一些问题,但是就我所知,循环是正确的这段代码?
答案 0 :(得分:3)
Python使用缩进来控制作用域。您的绘图代码不在游戏循环范围内。如果您将所有绘制代码缩进游戏循环中,那么它将一直绘制到退出循环为止。