Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

Reemplaza 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

Practica por tu cuenta: Playground de Pygame