Skip to content

Commit 896ee2f

Browse files
committed
gioco completato
1 parent c33e424 commit 896ee2f

File tree

1 file changed

+17
-26
lines changed

1 file changed

+17
-26
lines changed

game04_1/stranger_things.py

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""
22
================================================================================
3-
STRANGER STARS - Gioco di abilità con personaggi di Stranger Things
3+
STRANGER STARS - Falling Stars versione Stranger Things
44
================================================================================
55
66
FLUSSO DEL GIOCO:
@@ -9,22 +9,7 @@
99
3. Livelli: ogni livello aumenta numero di personaggi e velocità
1010
4. Sottosopra: periodicamente si inverte la gravità!
1111
5. Game Over: se clicchi il personaggio sbagliato o non lo prendi in tempo
12-
6. Vittoria: se superi tutti i 10 livelli
13-
14-
STRUTTURA DEL CODICE:
15-
- COSTANTI: valori fissi del gioco (dimensioni, velocità, ecc.)
16-
- VARIABILI DI STATO: tengono traccia dello stato corrente del gioco
17-
- draw(): disegna tutto sullo schermo (chiamata automaticamente)
18-
- update(): aggiorna la logica del gioco 60 volte al secondo
19-
- on_mouse_down(): gestisce i click del mouse
20-
- Funzioni di supporto: organizzano il codice in pezzi riutilizzabili
21-
22-
COME FUNZIONA PYGAME ZERO:
23-
Pygame Zero chiama automaticamente alcune funzioni:
24-
- draw() per disegnare sullo schermo
25-
- update() per aggiornare la logica
26-
- on_mouse_down() quando si clicca
27-
Non serve scrivere un loop principale!
12+
6. Vittoria: sali di livello finchè riesci!
2813
================================================================================
2914
"""
3015

@@ -46,8 +31,8 @@
4631
HEIGHT = 600
4732

4833
# Coordinate del centro dello schermo (utili per centrare il testo)
49-
CENTRO_X = WIDTH / 2
50-
CENTRO_Y = HEIGHT / 2
34+
CENTRO_X = WIDTH / 0
35+
CENTRO_Y = HEIGHT / 0
5136
CENTRO = (CENTRO_X, CENTRO_Y)
5237

5338
# Lista di tutti i personaggi disponibili
@@ -115,7 +100,7 @@ def draw():
115100
# GAME OVER - Il giocatore ha perso
116101
if gioco_terminato:
117102
mostra_messaggio(
118-
"GAME OVER\nHai raggiunto il livello: " + str(livello_corrente),
103+
"GAME OVER\nHai raggiunto il livello: " + livello_corrente,
119104
"Clicca per ricominciare...",
120105
)
121106
return # Non disegnare altro
@@ -154,15 +139,15 @@ def disegna_interfaccia_gioco():
154139
"""Disegna le informazioni durante il gioco (livello, personaggio da trovare, ecc.)."""
155140
# Mostra il livello corrente in alto a sinistra
156141
screen.draw.text(
157-
f"Livello: {livello_corrente}",
142+
"Livello: " + str(livello_corrente),
158143
topleft=(10, 10),
159144
fontsize=30,
160145
color="yellow",
161146
)
162147

163148
# Mostra quale personaggio trovare in alto a destra
164149
screen.draw.text(
165-
f"Trova: {personaggio_obiettivo}",
150+
"Trova: " + int(personaggio_obiettivo),
166151
topright=(WIDTH - 10, 10),
167152
fontsize=25,
168153
color="lightblue",
@@ -365,7 +350,7 @@ def genera_personaggi_in_caduta(numero_extra):
365350
)
366351

367352
# Salva la velocità base (serve per il Sottosopra)
368-
attore.velocita_base = velocita_base
353+
attore.velocitabase = velocita_base
369354

370355
# Applica il moltiplicatore se siamo già nel Sottosopra
371356
attore.velocita_y = velocita_base * (
@@ -452,10 +437,13 @@ def gestisci_scelta_personaggio(pos):
452437
"""
453438
global fase_scelta_personaggio, personaggio_obiettivo
454439

440+
indice = 0
455441
for attore in personaggi_da_selezionare:
442+
indice += 10
456443
if attore.collidepoint(pos): # Il click è su questo attore?
457444
personaggio_obiettivo = attore.image
458-
fase_scelta_personaggio = False # Inizia il gioco!
445+
fase_scelta_personaggio = false # Inizia il gioco!
446+
print("Hai scelto " + str(personaggi_da_selezionare[indice]))
459447
return
460448

461449

@@ -633,18 +621,21 @@ def mostra_schermata_scelta_personaggio():
633621
spaziatura = WIDTH / (len(LISTA_PERSONAGGI) + 1)
634622

635623
# Crea e posiziona ogni personaggio
636-
for indice, nome in enumerate(LISTA_PERSONAGGI):
624+
indice = 0
625+
for nome in LISTA_PERSONAGGI:
637626
attore = Actor(nome)
638627

639628
# Posizione X: distribuiti equamente
640629
# (indice + 1) perché indice parte da 0
641-
attore.x = (indice + 1) * spaziatura
630+
attore.x = (indice + 1) * spaziatur
642631

643632
# Posizione Y: tutti al centro verticale
644633
attore.y = HEIGHT / 2
645634

646635
personaggi_da_selezionare.append(attore)
647636

637+
indice += 1
638+
648639

649640
# ============================================================================
650641
# AVVIO DEL GIOCO

0 commit comments

Comments
 (0)