Regarder dans la direction du vol
Fait partie de la section Sprites et images du Journey Pygame de Coddy. Leçon 7 sur 36.
Le vaisseau pointe vers le haut dans son fichier. Avec rotate(ship, -90), il pointe vers la droite, ce qui convient à un vaisseau qui vole de côté. Quand il vole vers la gauche, il doit pointer vers la gauche.
pygame.transform.flip(image, flip_x, flip_y) vous donne une copie miroir. True, False le retourne de gauche à droite ; False, True le retourne de haut en bas.
ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)Les deux images sont créées une seule fois, avant la boucle. Le jeu mémorise ensuite laquelle afficher dans une variable, et les touches la modifient :
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
image = ship_leftAffichez image à chaque image. Lorsqu'aucune touche n'est maintenue, image conserve sa dernière valeur, donc le vaisseau continue de faire face dans la direction où il a volé en dernier.
Défi
Moyen- Avant la boucle, crée
ship_leften retournantship_rightde gauche à droite. - Définis
image = ship_rightavant la boucle. - Maintenir la touche gauche définit
image = ship_left; maintenir la touche droite définitimage = ship_right. Le déplacement reste inchangé. - Dessine
imageàship_rect.
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
if keys[pygame.K_RIGHT]:
ship_rect.x += 5
ship_rect.clamp_ip(screen.get_rect())
screen.fill((20, 22, 40))
screen.blit(ship_right, ship_rect)
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