Menu
CoddyTech

La placer avec un rectangle

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

Calculer à la main un coin supérieur gauche implique de faire des additions pour chaque image que tu places. Chaque Surface peut fournir un Rect de sa propre taille :

ship_rect = ship.get_rect(center=(320, 400))

get_rect() seul donne Rect(0, 0, 64, 64). Un mot-clé permet de le positionner : center, midbottom, topleft ou tout autre point d’un Rect. Ici, le milieu du vaisseau se trouve en (320, 400), et pygame calcule le coin : (288, 368).

Blitte l’image à l’emplacement du Rect : elle se place alors dans le coin supérieur gauche du Rect :

screen.blit(ship, ship_rect)

Le Rect représente maintenant la position du vaisseau. Modifie ship_rect.x ou ship_rect.centery, et l’image du vaisseau sera dessinée à cet endroit à la prochaine image. C’est ainsi que chaque image d’un jeu se déplace : conserve un Rect, modifie le Rect, blitte à l’emplacement du Rect. C’est aussi ce Rect que tu utilises pour tester les collisions, comme dans la section 2.

challenge icon

Défi

Facile
  1. Après avoir chargé ship, crée ship_rect = ship.get_rect(center=(320, 400)).
  2. Affiche ship à la position ship_rect plutôt qu’à un point fixe.

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

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

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    screen.blit(ship, (288, 208))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Sprites et images

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