我有以下代码,我尝试使用.blit加载两个图像:
import pygame
pygame.init()
width = 1600
height = 900
screen = pygame.display.set_mode((width, height))
attackImg = pygame.image.load('attack.png')
healImg = pygame.image.load('heal.png')
manaImg = pygame.image.load('mana.png')
moveImg = pygame.image.load('move.png')
shieldImg = pygame.image.load('shield.png')
stunImg = pygame.image.load('stun.png')
while True:
screen.fill((255, 255, 255))
screen.blit(healImg, (100, 800))
screen.blit(attackImg, (200, 800))
pygame.display.update()
运行代码时没有收到任何错误消息,但是图像没有显示。图像文件可用,并且已使用其正确的名称。我已经阅读了几本教程,但看不到我做错了什么。如果有任何区别,将编写代码并在repl.it中运行。请帮助我了解为什么没有显示图像以及需要更改的内容。
我复制粘贴了您的代码,首先,该窗口没有显示。您的代码中没有“事件循环”。您几乎总是必须这样做,否则该窗口将不会启动。您可能通常也想制作一个running = True
变量。否则,您的程序可能无法正常关闭。这是正确的代码:
import pygame
pygame.init()
width = 1600
height = 900
screen = pygame.display.set_mode((width, height))
attackImg = pygame.image.load('attack.png')
healImg = pygame.image.load('heal.png')
running = True
while running:
screen.fill((255, 255, 255))
for event in pygame.event.get(): # <--- 'event loop'
if event.type == pygame.QUIT:
running = False
screen.blit(healImg, (100, 800))
screen.blit(attackImg, (200, 800))
pygame.display.update()
如果不起作用,可能只是图像相互覆盖或在视图外部被“遮盖”。在这种情况下,请写评论。