Cuenta con len
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 26 de 32.
len(stars) indica cuántos elementos contiene la lista. Una lista vacía tiene una longitud de 0. Úsalo para mostrar un recuento:
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))Una f-string puede contener cualquier expresión entre sus llaves, incluso una llamada.
len también puede establecer un límite. Añade una estrella solo mientras haya espacio:
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)Cuando la lista contiene 10 estrellas, la condición es falsa, así que los clics no hacen nada. El recuento en pantalla y el límite consultan la misma lista, así que siempre coinciden.
El límite está en el bucle de eventos, unido a la comprobación del clic con and: la operación de añadir solo se ejecuta cuando el evento es un clic y hay espacio. len también funciona con cadenas: len("Night") es 5.
Desafío
IntermedioCuenta las estrellas y detente al llegar a diez:
- En la parte de configuración, crea
font = pygame.font.Font(None, 36). - En la parte de dibujo, muestra
f"Stars: {len(stars)}"en(230, 230, 240)en (20, 20). - Añade una estrella al hacer clic solo mientras
len(stars) < 10.
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()
# Prepara 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
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# 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