Причина этого, скорее всего, в том, что ничто не вызывает событие перерисовки.Значение буфера никогда не обновляется.За исключением случаев, когда окно перемещается за пределы экрана, эта часть будет вызывать событие перерисовки для этой области.
Добавление вручную обновления или flip вКонец вашего времени, должен вызвать обновление сцены, чтобы все снова выглядело хорошо:
import pygame, sys
from pygame.locals import *
pygame.init()
sizex = 400
sizey = 300
tilesize = 25
tile = pygame.image.load('images/tile.png')
tile = pygame.transform.scale(tile, (tilesize, tilesize))
screen = pygame.display.set_mode((sizex,sizey))
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
for row in range(sizex):
for column in range(sizey):
screen.blit(tile,(column*tilesize, row*tilesize,tilesize,tilesize))
pygame.display.flip() # or pygame.display.update()
Для тех, кто знаком с pygame / gl и обновлениями экрана, это будет несколько обременительным.В идеальных случаях вы должны обновлять только те области, которые нуждаются в обновлениях.
Например, отслеживание того, какие части экрана вы переместили, или какие события мыши вызвали определенные элементы на экране.А затем выполните pygame.display.update(rectangle_list)
только с областью для обновления.
Вот хорошее описание того, что они делают, и почему использование update()
может быть хорошей идеей: Разница между pygame.display.updateи pygame.display.flip