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.
Défi
Facile- Après
set_mode, chargezassets/images/ship.pngavec.convert_alpha()dans une variable nomméeship. - Dans la boucle, après le remplissage, affichez
shipavec 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
1Charger des images
Charger une imageLa placer avec un rectangleDéplacer l’imageRépéter un arrière-planPixels transparents2Tourner, retourner, redimensionner
Faire pivoter autour du centreRegarder dans la direction du volRedimensionner une imagePivoter à partir de l’original5Collisions au pixel près
Les rectangles semblent injustesMasquesSprites au pixel prèsZones de collision circulaires3Les classes pour les objets du jeu
Votre première classeLes méthodesSelf est l’objetUne liste d’objetsDes objets avec des imagesUne sous-classe6Animation à partir de feuilles de sprites
Découper une feuille de spritesUn compteur de framesAnimer avec le tempsUne explosion à déclenchement uniqueEntraînez-vous par vous-même : Playground Pygame