Dans pygame, pour fermer une fenêtre, on quitte une boucle. Mais moi, j'ai beau modifier la condition de la boucle, rien ne change et python ne lit pas le reste des instruction après la boucle...
## PRINCIPAL ##
import pygame
from pygame.locals import *
from pygame import sprite
from constantes import*
from Classe import *
pygame.init()
def Jeu():
#Ouverture de la fenêtre Pygame (carré : largeur = hauteur)
fenetre = pygame.display.set_mode((cote_fenetre, cote_fenetre))
#Chargement et collage du fond
fond = pygame.image.load("fond.jpg")
fenetre.blit(fond, (0,0))
#Icone
icone = pygame.image.load("dk_droite.png")
pygame.display.set_icon(icone)
#Titre
pygame.display.set_caption("DOnkey LaByrInthe")
niveau = Niveau()
niveau.génération_niveau()
niveau.affiche_niveau(fenetre)
#Perso
perso = pygame.image.load("dk_droite.png")
fenetre.blit(perso, (0,0))
pygame.display.flip()
fenetre = pygame.display.set_mode((cote_fenetre, cote_fenetre))
fond = pygame.image.load("fond.jpg")
#Icone
icone = pygame.image.load("dk_droite.png")
pygame.display.set_icon(icone)
#Titre
pygame.display.set_caption("DOnkey LaByrInthe")
niveau = Niveau()
donkey = Perso()
accueil = 1
while accueil:
#Chargement et collage du fond
fond = pygame.image.load("accueil.png")
fenetre.blit(fond, (0,0))
pygame.display.flip()
while 1: #MENU#-------
#Limitation de vitesse de la boucle
#30 frames par secondes
pygame.time.Clock().tick(30)
for event in pygame.event.get():
if (event.type == KEYDOWN):
if(event.key == K_RETURN):
accueil = 0
if (event.type == QUIT):
break
while 1: #JEU#-------
for event in pygame.event.get():
pygame.time.Clock().tick(30)
if (event.type == QUIT):
break
if (event.type == KEYDOWN): #Arriver au jeu
if(event.key == K_RETURN):
Jeu()
if(event.key == K_UP):
donkey.déplacement("haut")
if(event.key == K_DOWN):
donkey.déplacement("bas")
if(event.key == K_RIGHT):
donkey.déplacement(fenetre, "droite")
if(event.key == K_LEFT):
donkey.déplacement("gauche")
fenetre.blit(fond, (0,0))
niveau.affiche_niveau(fenetre)
fenetre.blit(donkey.direction, (donkey.DK_x, donkey.DK_y))
pygame.display.flip()
Le problème vient de la boucle à la ligne 47...
Merci
Dans pygame, pour fermer une fenêtre, on quitte une boucle. Mais moi, j'ai beau modifier la condition de la boucle, rien ne change et python ne lit pas le reste des instruction après la boucle...
Moi pour fermer la fenêtre j' utilise pygame.quit()
accueil = 1
while accueil:
#Chargement et collage du fond
fond = pygame.image.load("accueil.png")
fenetre.blit(fond, (0,0))
pygame.display.flip()
while 1: #MENU#-------
#Limitation de vitesse de la boucle
#30 frames par secondes
pygame.time.Clock().tick(30)
for event in pygame.event.get():
if (event.type == KEYDOWN):
if(event.key == K_RETURN):
break
if (event.type == QUIT):
pygame.quit()
Ce code te fera sortir de la boucle menu si tu appuie sur K_RETURN et fermera ta fenetre si tu appuie sur le bouton quitter (croix).
Python c'est bon, mangez-en.