Bonjour, j'ai un soucis dans mon jeu, (le but est de retirer tout les zombies de la cartes avec le tank via les flèches du clavier)
Mon soucis est que lorsque l'on est sensé gagné et que le programme se ferme (normalement), il doit afficher une phrase disant que l'utilisateur a gagné ainsi que son temps.
Seulement quand je ferme le programme, j'ai cette erreur qui arrive :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Traceback (most recent call last):
  File "<string>", line 420, in run_nodebug
  File "C:\Users\Nelion\Desktop\ISN\TD\Zombie Invasion1.py", line 65, in <module>
    pygame.key.set_repeat(40,20)
pygame.error: video system not initialized
Je ne sais comment la corriger :/
Merci d'avance pour votre aide

(P.S.: Je suis novice en Python)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
import pygame,sys,random
from pygame.locals import *    #Importation
import pygame as pg
 
# Ennemi et Tank
Ennemi=pygame.image.load("Ennemi.png")
Tank=pygame.image.load("Tank.png")
 
 
 
xMaxEnnemi = 1300
xMinEnnemi = 50
yMinEnnemi = 50
yMaxEnnemi = 600
NbZombies=10
 
pygame.init()
pygame.display.set_caption('TMDC') #Initialisation Fenêtre
fen=pygame.display.set_mode((1407,737))
fond = pygame.image.load("Plan de jeu.png")
fen.blit(fond,(0,0))
 
###########################################
# Son ambiance
son2 = pygame.mixer.Sound("ambiance.wav")
son2.play(-1) #joue le son2 en boucle.
rectTank=fen.blit(Tank,(1360,690))
 
 
pygame.display.update
 
def ListeCoordsZombies():
    liste=[]
    for i in range(NbZombies):
        x=random.randint(xMinEnnemi,xMaxEnnemi)
        y=random.randint(yMinEnnemi,yMaxEnnemi)
        liste.append([x,y])
    return liste
LCZ=ListeCoordsZombies()
 
 
def affiche():
    for i  in range(NbZombies):
        fen.blit(Ennemi,(LCZ[i][0],LCZ[i][1]))
fin=0
def collision():
    for i in range(NbZombies):
 
        rectEnnemiG=fen.blit(Ennemi,(LCZ[i][0],LCZ[i][1]))
        if rectTank.colliderect(rectEnnemiG)==True:
            LCZ[i][0]+=1000000
            global fin
            fin=fin+1
            print(fin)
 
 
 
 
fen.blit(Tank,rectTank)
pygame.display.update()
start_ticks=pygame.time.get_ticks()
while True:
        secondes=(pygame.time.get_ticks()-start_ticks)/1000
        pygame.key.set_repeat(40,20)
        collision()
        for evenement in pygame.event.get():
            if evenement.type==QUIT:
                pygame.quit()
                sys.exit
 
            if evenement.type==KEYDOWN:
                listeTouche = pygame.key.get_pressed()
                if listeTouche[K_RIGHT]:
                     if rectTank.x<1400:
                      rectTank.x=rectTank.x+25
                if listeTouche[K_LEFT]:
                     if rectTank.x>10:
                        rectTank.x=rectTank.x-25
                if listeTouche[K_UP]:
                     if rectTank.y>10:
                        rectTank.y=rectTank.y-25
                if listeTouche[K_DOWN]:
                    if rectTank.y<700:
                     rectTank.y=rectTank.y+25
            fen.blit(fond,(0,0))
            affiche()
            fen.blit(Tank,rectTank)
            pygame.display.update()
            if fin==10:
                pygame.display.quit()
                sys.exit
                print ("Félicitation, vous avez gagné !")
                print (secondes)