-
Notifications
You must be signed in to change notification settings - Fork 1
/
gioco macchine.py
70 lines (58 loc) · 1.99 KB
/
gioco macchine.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import turtle
import random
# Funzione per creare un ostacolo
def crea_ostacolo():
ostacolo = turtle.Turtle()
ostacolo.shape("square")
ostacolo.color("red")
ostacolo.shapesize(stretch_wid=1, stretch_len=random.randint(1, 3))
ostacolo.penup()
ostacolo.goto(300, random.randint(-200, 200))
return ostacolo
# Funzione per muovere la macchina verso l'alto
def muovi_su():
y = macchina.ycor()
if y < 250:
macchina.sety(y + 20)
# Funzione per muovere la macchina verso il basso
def muovi_giu():
y = macchina.ycor()
if y > -240:
macchina.sety(y - 20)
# Impostazioni della finestra del gioco
finestra = turtle.Screen()
finestra.title("Gioco di Macchine")
finestra.bgcolor("lightblue")
finestra.setup(width=800, height=600)
finestra.tracer(0)
# Crea la macchina giocatore
macchina = turtle.Turtle()
macchina.shape("square")
macchina.color("blue")
macchina.shapesize(stretch_wid=1, stretch_len=2)
macchina.penup()
macchina.goto(-350, 0)
# Creazione della lista per gli ostacoli
ostacoli = []
# Aggiungi eventi per muovere la macchina con i tasti su e giù
finestra.listen()
finestra.onkeypress(muovi_su, "Up")
finestra.onkeypress(muovi_giu, "Down")
# Ciclo principale del gioco
while True:
finestra.update()
# Crea un nuovo ostacolo ogni 100 punti
if len(ostacoli) < 3 and macchina.xcor() > 0:
ostacoli.append(crea_ostacolo())
# Muovi gli ostacoli verso sinistra
for ostacolo in ostacoli:
ostacolo.setx(ostacolo.xcor() - 15)
# Se la macchina e l'ostacolo si scontrano
if (ostacolo.distance(macchina) < 30 and ostacolo.ycor() - 30 < macchina.ycor() < ostacolo.ycor() + 30):
macchina.color("red")
print("Gioco Finito!")
finestra.bye()
# Se l'ostacolo esce dallo schermo, rimuovilo dalla lista e ricreane uno nuovo
if ostacolo.xcor() < -400:
ostacolo.clear()
ostacoli.remove(ostacolo)