L’appeler plusieurs fois
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 23 sur 32.
Appelle une fonction dans une boucle et elle dessine un motif. La boucle calcule les arguments, la fonction se charge du dessin :
for i in range(8):
draw_star(60 + i * 70, 60 + i * 45)À chaque itération, l’étoile se trouve 70 pixels plus à droite et 45 pixels plus bas que la précédente ; les étoiles forment donc une ligne allant de (60, 60) à (550, 375). Modifie 70 ou 45 et toutes les étoiles suivent.
Voilà pourquoi il vaut la peine d’écrire des fonctions. Les lignes qui dessinent une étoile n’existent qu’une seule fois. Pour changer l’apparence de toutes les étoiles, par exemple en allongeant leurs rayons ou en changeant leur couleur, modifie le corps de la fonction : chaque appel dessinera alors la nouvelle étoile.
Donne à une fonction un nom qui décrit ce qu’elle fait, souvent avec un verbe : draw_star, move_comet, reset_game. Ainsi, une ligne qui l’appelle se lit comme une phrase.
Défi
FacileDessine une ligne d’étoiles : remplace l’appel unique par for i in range(8): en appelant draw_star(60 + i * 70, 60 + i * 45). Les 8 étoiles vont de (60, 60) à (550, 375).
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Configurez les éléments ici, avant la boucle du jeu.
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Modifiez les éléments ici, une fois par image.
screen.fill((20, 24, 48))
# Dessinez ici, après le remplissage.
draw_star(60, 60)
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 Python dans une fenêtre de jeu
1Votre première fenêtre
Votre premier programmeAfficher un messageLes couleurs en nombresDessiner la LuneEntraînez-vous par vous-même : Playground Pygame