Haz clic para añadir
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 25 de 32.
Una lista puede crecer mientras el juego se ejecuta. stars.append(item) añade un elemento al final.
Un clic del ratón llega al bucle de eventos como un evento MOUSEBUTTONDOWN, y event.pos indica dónde ocurrió, una tupla (x, y):
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)Cada clic añade una posición. La parte de dibujo ya dibuja todas las estrellas de la lista, así que la nueva estrella aparece en el siguiente fotograma y permanece allí, porque la lista la conserva.
La lista empieza vacía en la parte de configuración: stars = []. Si se creara dentro del bucle del juego, se vaciaría en cada fotograma y cada estrella desaparecería enseguida.
Desafío
FácilEn el bucle de eventos, cuando llega un evento MOUSEBUTTONDOWN, añade event.pos a stars. Cada clic después coloca una estrella blanca.
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.
stars = []
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.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de Python en una ventana de juego
6Listas de cosas
Una lista de estrellasHaz clic para añadirCuenta con lenQuita una estrellaNúmeros aleatoriosPractica por tu cuenta: Playground de Pygame