Numeri casuali
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 28 di 32.
Il modulo random di Python sceglie i numeri in modo casuale. Importalo all'inizio del programma, sopra o sotto import pygame:
import randomrandom.randint(a, b) restituisce un numero intero da a a b, estremi inclusi. random.choice(items) sceglie un elemento da una lista:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])Ogni chiamata sceglie di nuovo, quindi chiamala quando ti serve un nuovo valore. Una stella posizionata premendo Spazio:
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))Nota le doppie parentesi in stars.append((x, y)): append accetta un elemento, che è la tupla (x, y). Se invece scegli x e y una volta sola prima del ciclo di gioco, tutte le stelle finiranno nello stesso punto.
Sfida
MedioFai spargere le stelle premendo la barra spaziatrice:
- Aggiungi
import randomin cima. - Quando arriva un evento
KEYDOWNperK_SPACE, sceglix = random.randint(20, 620)ey = random.randint(60, 300), quindi aggiungi(x, y)astars. - I clic continuano ad aggiungere stelle come prima.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Prepara tutto qui, prima del ciclo di gioco.
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)
# Aggiorna tutto qui, una volta per fotogramma.
screen.fill((20, 24, 48))
# Disegna qui, dopo aver riempito lo schermo.
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()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Python in una finestra di gioco
6Liste di elementi
Una lista di stelleClicca per aggiungereConta con lenRimuovi una stellaNumeri casualiEsercitati da solo: Playground Pygame