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.
Desafío
FácilDibuja 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()
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