Menu
CoddyTech

Charger une image

Fait partie de la section Sprites et images du Journey Pygame de Coddy. Leçon 1 sur 36.

Les jeux affichent des images, pas seulement des formes. Une image provient d’un fichier image, et pygame transforme ce fichier en Surface, du même type que la fenêtre : une grille de pixels sur laquelle tu peux dessiner.

ship = pygame.image.load("assets/images/ship.png").convert_alpha()

Le chemin est relatif à main.py : le jeu possède un dossier assets à côté, et l’onglet Assets, à côté du jeu, répertorie tous les fichiers qu’il contient.

convert_alpha() copie l’image dans le format de pixels propre à la fenêtre, ce qui accélère son affichage à chaque image et préserve ses pixels transparents. Cette opération a besoin de la fenêtre : charge donc les images après set_mode. Charge chaque image une seule fois, avant la boucle : lire un fichier 60 fois par seconde ralentit le jeu.

Pour afficher l’image, fais un blit sur la fenêtre. La position indique où placer son coin supérieur gauche :

screen.blit(ship, (288, 208))

Effectue le blit après screen.fill(...), sinon le remplissage recouvrira l’image.

challenge icon

Défi

Facile
  1. Après set_mode, chargez assets/images/ship.png avec .convert_alpha() dans une variable nommée ship.
  2. Dans la boucle, après le remplissage, affichez ship avec son coin supérieur gauche en (288, 208). Le vaisseau mesure 64 × 64 pixels ; il se trouve donc au milieu de la fenêtre de 640 × 480.

Essayez vous-même

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

Toutes les leçons de Sprites et images

Entraînez-vous par vous-même : Playground Pygame