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.
Défi
Facile- Après avoir chargé
ship, créeship_rect = ship.get_rect(center=(320, 400)). - Affiche
shipà la positionship_rectplutô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()
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
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