0

我正在 python 中加载我认为正确的图像,但它仍然不显示。不知道是图太大还是怎么回事。

import pygame
import math

pygame.display.init()
window = pygame.display.set_mode((600, 500))
mapImg = pygame.image.load("mapoftheusa.bmp")

done = False

while not done:

    window.fill((0,0,0))
    evtList = pygame.event.get()
    for evt in evtList:
         if evt.type == pygame.QUIT:
            done = True

    window.blit(mapImg, (0,0)) #<<will not blit

pygame.quit()
4

1 回答 1

2

pygame.display.update()您忘记在之后添加呼叫window.blit(mapImg, (0,0))

因此,您的完整代码应该是:

import pygame
import math

pygame.display.init()
window = pygame.display.set_mode((600, 500))
mapImg = pygame.image.load("mapoftheusa.bmp")

done = False

while not done:

   window.fill((0,0,0))
   evtList = pygame.event.get()
   for evt in evtList:
       if evt.type == pygame.QUIT:
          done = True

   window.blit(mapImg, (0,0)) #<<will not blit
   pygame.display.update() # solution: you forgot this...

pygame.quit()

pygame.display.update()用您的图纸更新窗口(屏幕)。如果您不调用它,您将什么也看不到。pygame.display.flip()也可以,但应该在使用双缓冲或硬件表面时使用。

另外,我认为最好通过调用来初始化 pygame,pygame.init()因为这将初始化它的所有模块,包括显示。

于 2012-04-09T13:33:47.637 回答