Números aleatorios
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 28 de 32.
El módulo random de Python elige números al azar. Impórtalo en la parte superior del programa, por encima o por debajo de import pygame:
import randomrandom.randint(a, b) devuelve un número entero entre a y b, incluidos ambos extremos. random.choice(items) elige un elemento de una lista:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])Cada llamada elige de nuevo, así que llámala cuando necesites un valor nuevo. Una estrella colocada al pulsar la barra espaciadora:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))Fíjate en los paréntesis dobles de stars.append((x, y)): append acepta un elemento, y ese elemento es la tupla (x, y). Si eliges x e y una sola vez antes del bucle del juego, todas las estrellas aparecerán en el mismo lugar.
Desafío
IntermedioDeja que la barra espaciadora disperse estrellas:
- Agrega
import randomal principio. - Cuando llegue un evento
KEYDOWNparaK_SPACE, eligex = random.randint(20, 620)ey = random.randint(60, 300), y agrega(x, y)astars. - Los clics siguen agregando estrellas como antes.
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 = []
font = pygame.font.Font(None, 36)
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)
# Actualiza todo 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)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
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
6Listas de cosas
Una lista de estrellasHaz clic para añadirCuenta con lenQuita una estrellaNúmeros aleatoriosPractica por tu cuenta: Playground de Pygame