试图在python中加载位图图像

时间:2012-04-09 12:18:00

标签: python pygame

我在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()

1 个答案:

答案 0 :(得分: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.init()初始化pygame,因为这将初始化其所有模块,包括显示。