Pygame, che è il motore per creare veri e propri videogiochi!
Se Matplotlib è un foglio di carta, Pygame è un cartone animato: dobbiamo dire al computer di ridisegnare tutto tantissime volte al secondo (i famosi FPS, Frames Per Second).
Un cerchio giallo in una finestra nera
Cosa impariamo, ragazzi, con questo esempio?
-
I Colori RGB: i colori sono come pozioni magiche fatte di Red (Rosso), Green (Verde) e Blue (Blu). Ogni valore va da 0 a 255.
-
(255, 0, 0)è rosso purissimo. -
(255, 255, 255)è bianco (tutte le luci accese). -
(0, 0, 0)è nero (tutte le luci spente).
-
-
Le Coordinate ($x$, $y$): In Pygame, il punto
(0,0)è l’angolo in alto a sinistra.-
Se aumenti la $x$, vai a destra.
-
Se aumenti la $y$, vai in basso (questo di solito li sconcerta, perché a scuola la $y$ va verso l’alto!).
-

import pygame
pygame.init()
# Creiamo il foglio da disegno
finestra = pygame.display.set_mode((400, 400))
# Colore dello sfondo (Blu scuro) e del cerchio (Giallo)
sfondo = (0, 0, 50)
giallo = (255, 255, 0)
# Disegniamo una volta sola
finestra.fill(sfondo)
# Disegna un cerchio: (dove, colore, (centro_x, centro_y), raggio)
pygame.draw.circle(finestra, giallo, (200, 200), 80)
# Mostra il disegno
pygame.display.flip()
# Aspetta un po’ prima di chiudere (5 secondi)
pygame.time.delay(5000)
pygame.quit()
Esercizio lampo: “Il semaforo”
Modificare il codice sopra per disegnare tre cerchi uno sopra l’altro, come un semaforo:
-
Un cerchio Rosso in alto.
-
Un cerchio Giallo in mezzo.
-
Un cerchio Verde in basso.
Consiglio: Dovrete cambiare solo il valore della coordinata y per ogni cerchio (ad esempio: 100, 200 e 300).

Muoviamo la sfera rossa

Facciamo finta che Pygame sia un telecomando: premi un tasto e il cerchio si sposta. Niente rimbalzi automatici, niente calcoli strani. Solo tu che guidi il cerchio sul foglio.

Esercizi:
- Effetto pennello: mettere un simbolo di commento (
#) davanti alla riga dello sfondo:# schermo.fill((255, 255, 255)) - Rendi lo sfondo di colore nero
- Aumenta a 100 le dimensioni del raggio della pallina
- Cambia la pallina da Tennis in una da basket arancione
- Accelera la velocità dei tasti da +1 a +10
- Inverti il tasto destro con il sinistro
Un quadrato rosso che si muove
Ecco l’esempio più semplice possibile: una finestra nera con un quadrato rosso che puoi muovere con le frecce della tastiera.
import pygame
# 1. Iniziamo il gioco
pygame.init()
schermo = pygame.display.set_mode((600, 400)) # Crea una finestra 600×400
orologio = pygame.time.Clock() # Serve per gestire la velocità
# Posizione iniziale del nostro “giocatore” (il quadrato)
x, y = 300, 200
# 2. Il “Loop” principale (il cuore del gioco che batte all’infinito)
esecuzione = True
while esecuzione:
# Controlla se abbiamo cliccato la “X” per uscire
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
esecuzione = False
# 3. Controlla i tasti premuti
tasti = pygame.key.get_pressed()
if tasti[pygame.K_LEFT]: x -= 5
if tasti[pygame.K_RIGHT]: x += 5
if tasti[pygame.K_UP]: y -= 5
if tasti[pygame.K_DOWN]: y += 5
# 4. Disegna!
schermo.fill((0, 0, 0)) # Coloriamo lo sfondo di nero (per pulire il vecchio disegno)
pygame.draw.rect(schermo, (255, 0, 0), (x, y, 50, 50)) # Disegna il quadrato rosso
pygame.display.flip() # Aggiorna la finestra con il nuovo disegno
orologio.tick(60) # Mantieni il gioco a 60 fotogrammi al secondo
pygame.quit()
