Se connecter

Informatique

Création de Jeux

Sujet : Problème bouton sur pygame
1
ExiledKnight
Niveau 1
12 février 2020 à 21:04:36

Bonjour, j'ai un problème sur mon programme pygame au niveau d'un bouton servant à quitter le menu,
à savoir que quand on clique n'importe ou sur la fenêtre avec la souris cette dernière se ferme alors que je souhaiterais qu'elle se ferme uniquement si l'utilisateur clique sur le bouton ou quitte le jeu.
C'est peut-être une erreur idiote mais je ne la trouve pas, merci pour l'aide!
Voilà le code;

import pygame
from pygame.locals import *

from classes import *
from constantes import *

pygame.init()
pygame.font.init()

font = pygame.font.SysFont('helvetic', 70)
fenetre = pygame.display.set_mode((cote_fenetreL, cote_fenetrel),RESIZABLE)
icone = pygame.image.load(image_icone)
pygame.display.set_icon(icone)
pygame.display.set_caption(titre_fenetre)

continuer = 1
while continuer:
accueil = pygame.image.load(image_accueil).convert()
fenetre.blit(accueil, (0,0))

continuer_jeu = 1
continuer_accueil = 1

bouton1 = pygame.image.load("images/boutonquit.png").convert_alpha()
fenetre.blit(bouton1, (50,50))
bouton1_rect = bouton1.get_rect()
texteb1 = 'Quit?'
TEXT = font.render(texteb1, 1, (255,255,255))
fenetre.blit(TEXT, (50, 50))

pygame.display.flip()

while continuer_accueil:
pygame.time.Clock().tick(60)

for event in pygame.event.get():
if pygame.mouse.get_focused():
x, y = pygame.mouse.get_pos()
collide = bouton1_rect.collidepoint(x, y)

if collide:
TEXT = 'Click to quit'
else:
TEXT = 'Quit?'

pressed = pygame.mouse.get_pressed()
if event.type == QUIT or pressed[0]:
continuer_accueil = 0
continuer_jeu = 0
continuer = 0
choix = 0

elif event.type == KEYDOWN:
#Lancement du niveau 1
if event.key == K_F1:
continuer_accueil = 0 #On quitte l'accueil
choix = 'n1'

if choix != 0:
#Chargement du fond
fond = pygame.image.load(image_fond).convert()

#Génération d'un niveau à partir d'un fichier
niveau = Niveau(choix)
niveau.generer()
niveau.afficher(fenetre)

#Création du perso
perso = Perso("images/persod.png", "images/persog.png",
"images/persoh.png", "images/persob.png", niveau)

while continuer_jeu:
pygame.time.Clock().tick(60)

for event in pygame.event.get():
if event.type == QUIT:
continuer_jeu = 0
continuer = 0

elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
continuer_jeu = 0

elif event.key == K_RIGHT:
perso.deplacer('droite')
elif event.key == K_LEFT:
perso.deplacer('gauche')
elif event.key == K_UP:
perso.deplacer('haut')
elif event.key == K_DOWN:
perso.deplacer('bas')

fenetre.blit(fond, (0,0))
niveau.afficher(fenetre)
fenetre.blit(perso.direction, (perso.x, perso.y)) #dk.direction = l'image dans la bonne direction
pygame.display.flip()

pygame.quit()

Je pense que c'est au niveau de la détéction de la souris sur le bouton, car le collide ne fonctionne pas :/

1
Sujet : Problème bouton sur pygame
   Retour haut de page
Consulter la version web de cette page