Carregue uma imagem
Parte da seção Sprites e imagens do Journey de Pygame da Coddy. Lição 1 de 36.
Os jogos exibem imagens, não apenas formas. Uma imagem vem de um arquivo de imagem, e o pygame transforma o arquivo em uma Surface, o mesmo tipo de coisa que a janela: uma grade de pixels na qual você pode desenhar.
ship = pygame.image.load("assets/images/ship.png").convert_alpha()O caminho é relativo a main.py: o jogo tem uma pasta assets ao lado dele, e a aba Assets ao lado do jogo lista todos os arquivos nela.
convert_alpha() copia a imagem para o formato de pixel da própria janela, então desenhá-la a cada quadro é rápido e mantém os pixels transparentes. Esse método precisa da janela, então carregue as imagens depois de set_mode. Carregue cada imagem uma vez, antes do loop: ler um arquivo 60 vezes por segundo deixa o jogo lento.
Para desenhar a imagem, faça blit dela na janela. A posição indica onde fica o canto superior esquerdo:
screen.blit(ship, (288, 208))Faça o blit depois de screen.fill(...), ou o preenchimento a cobrirá.
Desafio
Fácil- Depois de
set_mode, carregueassets/images/ship.pngcom.convert_alpha()em uma variável chamadaship. - No loop, depois do preenchimento, desenhe
shipcom o canto superior esquerdo em(288, 208). A nave tem 64 por 64 pixels, então fica no meio da janela de 640 por 480.
Experimente você mesmo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas as lições de Sprites e imagens
1Carregando imagens
Carregue uma imagemPosicione-a com um RectMova a imagemLadrilhe o plano de fundoPixels transparentes2Girar, Inverter, Redimensionar
Girar em torno do centroFicar de frente para a direção do vooRedimensionar uma imagemGirar a partir do original3Classes para Objetos de Jogos
Sua primeira classeMétodosSelf é o objetoUma lista de objetosObjetos com imagensUma subclasse6Animação com Sprite Sheets
Recorte uma Sprite SheetUm contador de quadrosAnime com o tempoUma explosão de disparo únicoPratique por conta própria: Playground de Pygame