每当我尝试加载一些薯条(游戏中的敌人)的图像时,它都会加载精灵。我认为图像是空白的。如何正确加载图像以使其显示?
我试图更改加载图像的方法,选择从类的外部而不是内部加载图像。
import pygame
pygame.init()
# how big the game window is
wind = pygame.display.set_mode((600,700))
pygame.display.set_caption("Heart Attack")
x = 50
y = 50
width = 40
height = 60
vel = 0.8
fries = pygame.image.load('enemy.png').convert_alpha()
class Enemy(pygame.sprite.Sprite):
def __init__(self, pos):
super().__init__()
self.image = fries
self.rect = self.image.get_rect(center = pos)
move = True
Enemy((100, 300))
while move:
pygame.time.delay(1)
#kill switch
for event in pygame.event.get():
if event.type == pygame.QUIT:
move = False
keys = pygame.key.get_pressed()
#moves character
if keys[pygame.K_LEFT]:
x -= vel
if keys[pygame.K_RIGHT]:
x += vel
if keys[pygame.K_UP]:
y -= vel
if keys[pygame.K_DOWN]:
y += vel
# makes the character not clone itself
wind.fill((0,0,0))
# draws and displays character with the color red
pygame.draw.rect(wind, (255, 0, 0), (x, y, width, height))
pygame.display.update()
pygame.quit()
我需要显示精灵,但它显示为空白。我希望它在屏幕中间生成,因此在center = pos
中出现。
答案 0 :(得分:1)
图像可能已加载好;但实际上您从未将它涂抹到屏幕表面。
您可以将代码更改为此:
...
sprites = pygame.sprite.Group(Enemy((100, 300)))
move = True
while move:
...
sprites.draw(wind)
pygame.display.update()
使用Group
,这是pygame绘制精灵的默认方式。