Menu
CoddyTech

Répéter avec for

Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 15 sur 32.

Une boucle for répète ses instructions, une fois pour chaque valeur qu'elle reçoit :

for i in range(8):
    pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)

range(8) donne les nombres 0, 1, 2 et ainsi de suite jusqu'à 7 : huit nombres, en commençant à 0 et en s'arrêtant avant 8. La boucle stocke successivement chacun d'eux dans i et exécute les lignes indentées. Ainsi, la première étoile se trouve à x 40, la suivante à 120, puis à 200, jusqu'à 600.

Les lignes indentées forment le corps de la boucle, comme avec un if. La première ligne après le corps, de retour à l'indentation extérieure, s'exécute une fois la boucle terminée.

Cette boucle se trouve dans la partie dessin de la boucle de jeu, donc les huit étoiles sont redessinées à chaque image. Elle est courte et se termine immédiatement, donc l'image se termine toujours à temps.

i est un nom courant pour une variable de comptage, mais n'importe quel nom convient : for n in range(8): compte de la même façon.

challenge icon

Défi

Facile

Remplace l’étoile unique par une boucle for sur range(8) qui dessine 8 étoiles blanches de rayon 5 aux coordonnées (40 + i * 80, 80).

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()

# Préparez les éléments ici, avant la boucle de jeu.

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.
    pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Toutes les leçons de Python dans une fenêtre de jeu

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