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.
Défi
FacileRemplace 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
1Votre première fenêtre
Votre premier programmeAfficher un messageLes couleurs en nombresDessiner la Lune4Des boucles qui dessinent
Répéter avec forDébut, fin et pasUtiliser la variable de boucleUne boucle dans une boucleCompter avec whileEntraînez-vous par vous-même : Playground Pygame