Menu
CoddyTech

Llámala muchas veces

Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 23 de 32.

Llama a una función en un bucle y dibuja un patrón. El bucle calcula los argumentos y la función realiza el dibujo:

for i in range(8):
    draw_star(60 + i * 70, 60 + i * 45)

Cada pasada está 70 píxeles a la derecha de la anterior y 45 píxeles más abajo, así que las estrellas forman una línea desde (60, 60) hasta (550, 375). Cambia 70 o 45 y todas las estrellas seguirán ese cambio.

Por eso vale la pena escribir funciones. Las líneas que dibujan una estrella existen una sola vez. Para cambiar el aspecto de todas las estrellas, por ejemplo, hacer los rayos más largos o usar otro color, cambias el cuerpo de la función y cada llamada dibuja la nueva estrella.

Ponle a una función un nombre que describa lo que hace, a menudo con un verbo: draw_star, move_comet, reset_game. Así, una línea que la llama se lee como una oración.

challenge icon

Desafío

Fácil

Dibuja una línea de estrellas: reemplaza la llamada única con for i in range(8): llamando a draw_star(60 + i * 70, 60 + i * 45). Las 8 estrellas van desde (60, 60) hasta (550, 375).

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.
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

    # Haz los cambios aquí, una vez por fotograma.

    screen.fill((20, 24, 48))
    # Dibuja aquí, después de rellenar la pantalla.
    draw_star(60, 60)

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

pygame.quit()
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Python en una ventana de juego

Practica por tu cuenta: Playground de Pygame