Repetir con for
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 15 de 32.
Un bucle for repite sus líneas una vez por cada valor que recibe:
for i in range(8):
pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)range(8) da los números 0, 1, 2 y así sucesivamente hasta 7: ocho números, empezando en 0 y deteniéndose antes de 8. El bucle guarda cada uno en i por turnos y ejecuta las líneas con sangría. Así, la primera estrella está en x 40, la siguiente en 120, después 200, hasta 600.
Las líneas con sangría son el cuerpo del bucle, como ocurre con un if. La primera línea después del cuerpo, de vuelta a la sangría externa, se ejecuta una vez que termina el bucle.
Este bucle está en la parte de dibujo del bucle del juego, así que las ocho estrellas se vuelven a dibujar en cada fotograma. Es corto y termina de inmediato, así que el fotograma sigue terminando a tiempo.
i es un nombre habitual para una variable de conteo, pero cualquier nombre sirve: for n in range(8): cuenta lo mismo.
Desafío
FácilReemplaza la estrella única con un bucle for sobre range(8) que dibuje 8 estrellas blancas de radio 5 en (40 + i * 80, 80).
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Configura todo aquí, antes del bucle del juego.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Modifica las cosas aquí, una vez por fotograma.
screen.fill((20, 24, 48))
# Dibuja aquí, después de rellenar la pantalla.
pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de Python en una ventana de juego
4Bucles que dibujan
Repetir con forInicio, fin y pasoUsar la variable del bucleUn bucle dentro de otroContar con whilePractica por tu cuenta: Playground de Pygame