Menu
CoddyTech

Déplacer l’image

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

Le vaisseau se trouve en bas de la fenêtre. Pour le faire voler vers la gauche et la droite, déplace son Rect avec les touches fléchées, comme tu l’as fait pour le carré dans la section 2 :

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
    ship_rect.x += 6

La ligne blit ne change pas : elle dessine le vaisseau à l’endroit où se trouve le Rect.

Un Rect peut se maintenir à l’intérieur d’un autre Rect. screen.get_rect() est le Rect de la fenêtre, (0, 0, 640, 480), et

ship_rect.clamp_ip(screen.get_rect())

replace ship_rect à l’intérieur lorsqu’il dépasse. _ip signifie « sur place » : cela modifie ship_rect lui-même. ship_rect.clamp(...), sans cela, laisse ship_rect inchangé et te renvoie un nouveau Rect.

challenge icon

Défi

Facile
  1. Dans la boucle, avant le dessin, maintenir la touche fléchée gauche déplace ship_rect de 6 pixels vers la gauche, et maintenir la touche fléchée droite le déplace de 6 pixels vers la droite.
  2. Ensuite, gardez-le dans la fenêtre avec ship_rect.clamp_ip(screen.get_rect()).

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()
ship_rect = ship.get_rect(center=(320, 400))

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, ship_rect)
    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