Menu
CoddyTech

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.

challenge icon

Défi

Facile

Dessine 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()
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground Pygame