Quelqu'un POUR m'aider dans MON CODE pygame ?
- 1
#code python
while True:
pygame.time.wait(500)
mem = 0
for event in pygame.event.get():
if event == pygame.QUIT:
sys.exit
if event == pygame.KEYDOWN:
match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1
if move() == 0:
break
print("score = ",len(snake)+1)
sys.exit
j'ai mis juste la partie ou j'ai un probleme le reste je pense pas qu'il y ai de soucis
voila j'ai un petit probleme et c'est a la partie pygame.QUIT qui fonctionne pas, quand je lance le programme et que je clique sur la croix pour quitter, rien ne se passe...
si quelqu'un s'y connait en pygame je voudrais bien savoir pourquoi
Le 13 janvier 2023 à 15:34:43 :
Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?
oui peut etre mais c'est pas ça le probleme
Le 13 janvier 2023 à 15:36:36 :
Le 13 janvier 2023 à 15:35:49 :
Le 13 janvier 2023 à 15:34:43 :
Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?oui peut etre mais c'est pas ça le probleme
merci quille je me demande pourquoi ça marche pas comme un if vivant cette partie
Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.
Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.
Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.
Ainsi, le code devrait ressembler à ceci:
while True:
pygame.time.wait(500)
mem = 0
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1
if move() == 0:
break
print("score = ",len(snake)+1)
Le 13 janvier 2023 à 15:39:43 :
Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.
Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.
Ainsi, le code devrait ressembler à ceci:
while True: pygame.time.wait(500) mem = 0 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: match event: case pygame.K_UP: if mem == 0: head_direction = (0,1) mem = 1 case pygame.K_DOWN: if mem == 0: head_direction = (0,-1) mem = 1 case pygame.K_RIGHT: if mem == 0: head_direction = (1,0) mem = 1 case pygame.K_LEFT: if mem == 0: head_direction = (-1,0) mem = 1 if move() == 0: break print("score = ",len(snake)+1)
ça fonctionne merci
j'ai oublié que fallait mettre event.type au lieu de event, et j'ai mis le pygame.quit
Le 13 janvier 2023 à 15:45:33 :
Le 13 janvier 2023 à 15:39:43 :
Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.
Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.
Ainsi, le code devrait ressembler à ceci:
while True: pygame.time.wait(500) mem = 0 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: match event: case pygame.K_UP: if mem == 0: head_direction = (0,1) mem = 1 case pygame.K_DOWN: if mem == 0: head_direction = (0,-1) mem = 1 case pygame.K_RIGHT: if mem == 0: head_direction = (1,0) mem = 1 case pygame.K_LEFT: if mem == 0: head_direction = (-1,0) mem = 1 if move() == 0: break print("score = ",len(snake)+1)
ça fonctionne merci
j'ai oublié que fallait mettre event.type au lieu de event, et j'ai mis le pygame.quit
Merci ChatGPT si ça a vraiment fonctionné.
Essie d'abord pygame.quit()
Puis fais un exit(0) pas besoin du module sys
- 1
Données du topic
- Auteur
- EnormeEtronDu92
- Date de création
- 13 janvier 2023 à 15:24:09
- Nb. messages archivés
- 18
- Nb. messages JVC
- 18