Cargar una imagen
Parte de la sección Sprites e imágenes del Journey de Pygame de Coddy. Lección 1 de 36.
Los juegos dibujan imágenes, no solo formas. Una imagen proviene de un archivo de imagen, y pygame convierte el archivo en una Surface, el mismo tipo de elemento que la ventana: una cuadrícula de píxeles sobre la que puedes dibujar.
ship = pygame.image.load("assets/images/ship.png").convert_alpha()La ruta es relativa a main.py: el juego tiene una carpeta assets a su lado, y la pestaña Assets junto al juego muestra todos los archivos que contiene.
convert_alpha() copia la imagen al formato de píxeles propio de la ventana, para que dibujarla en cada fotograma sea rápido y conserve sus píxeles transparentes. Necesita la ventana, así que carga las imágenes después de set_mode. Carga cada imagen una sola vez, antes del bucle: leer un archivo 60 veces por segundo ralentiza el juego.
Para dibujar la imagen, haz blit sobre la ventana. La posición indica dónde va su esquina superior izquierda:
screen.blit(ship, (288, 208))Haz blit después de screen.fill(...), o el relleno la cubrirá.
Desafío
Fácil- Después de
set_mode, cargaassets/images/ship.pngcon.convert_alpha()en una variable llamadaship. - En el bucle, después del relleno, dibuja
shipcon la esquina superior izquierda en(288, 208). La nave mide 64 por 64 píxeles, así que queda en el centro de la ventana de 640 por 480.
Pruébalo tú mismo
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 las lecciones de Sprites e imágenes
1Cargar imágenes
Cargar una imagenColocarla con un rectánguloMover la imagenRepetir un fondo en mosaicoPíxeles transparentes2Girar, voltear y escalar
Girar alrededor del centroApuntar en la dirección del vueloEscalar una imagenGirar desde la imagen original5Colisiones precisas a nivel de píxel
Los rectángulos parecen injustosMáscarasSprites precisos a nivel de píxelHitboxes circulares3Clases para objetos del juego
Tu primera claseMétodosSelf es el objetoUna lista de objetosObjetos con imágenesUna subclase6Animación con hojas de sprites
Recortar una hoja de spritesUn contador de fotogramasAnimar con el tiempoUna explosión de una sola vezPractica por tu cuenta: Playground de Pygame