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 += 6La 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.
Défi
Facile- Dans la boucle, avant le dessin, maintenir la touche fléchée gauche déplace
ship_rectde 6 pixels vers la gauche, et maintenir la touche fléchée droite le déplace de 6 pixels vers la droite. - 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
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