Problème avec les événement personalisés PyGame
Résolu
Enz0lanterne828
Messages postés
50
Statut
Membre
-
Enz0lanterne828 Messages postés 50 Statut Membre -
Enz0lanterne828 Messages postés 50 Statut Membre -
Bonjour,
J'ai 12 ans et je code en python, en ce moment j'utilise le module PyGame.
J'ai un problème avec la commande
Lorsque je créer 1 événement tout va bien:
Mais lorsque je rajoute 1 événement ou plus il y a un problème:
Le problème est que peu importe sur quel bouton je clique le programme prend la première codition (ici qui est:
Donc si je clique sur le bouton quiter, le programme me mène vers le options et pareil pour le bouton jouer...
Auriez-vous une solution SVP ?
Merci d'avance.
J'ai 12 ans et je code en python, en ce moment j'utilise le module PyGame.
J'ai un problème avec la commande
pygame.time.set_timer.
Lorsque je créer 1 événement tout va bien:
QUIT_GAME = pygame.USERVENT
elif event.type == pygame.MOUSEBUTTONUP:
if boutons.bouton_quiter.rect.collidepoint(event.pos) and menu:
boutons.bouton_quiter.image = boutons.bouton_quiter.image_clique
pygame.time.set_timer(boutons.QUIT_GAME, 10)
elif event.type == boutons.QUIT_GAME:
pygame.time.set_timer(boutons.QUIT_GAME, 0)
quit()
Mais lorsque je rajoute 1 événement ou plus il y a un problème:
BRUIT = pygame.USERVENT
SETTINGS = pygame.USEREVNT
QUIT_GAME = pygame.USERVENT
elif event.type == pygame.MOUSEBUTTONUP:
if boutons.bouton_quiter.rect.collidepoint(event.pos) and menu:
boutons.bouton_quiter.image = boutons.bouton_quiter.image_clique
pygame.time.set_timer(boutons.QUIT_GAME, 10)
if boutons.bouton_jouer.rect.collidepoint(event.pos) and menu:
boutons.bouton_jouer.image = boutons.bouton_jouer.image_brule
boutons.bouton_jouer.rect = boutons.bouton_jouer.new_rect
feu.set_volume(1.8)
feu.play()
pygame.time.set_timer(boutons.BRUIT, 2700)
if boutons.bouton_options.rect.collidepoint(event.pos) and menu:
boutons.bouton_options.image = boutons.bouton_options.image_clique
pygame.time.set_timer(boutons.SETTINGS, 10)
elif event.type == boutons.SETTINGS:
pygame.time.set_timer(boutons.SETTINGS, 0)
menu = False
option = True
elif event.type == boutons.BRUIT:
pygame.time.set_timer(boutons.BRUIT, 0)
menu = False
game = True
elif event.type == boutons.QUIT_GAME:
pygame.time.set_timer(boutons.QUIT_GAME, 0)
quit()
Le problème est que peu importe sur quel bouton je clique le programme prend la première codition (ici qui est:
elif event.type == boutons.SETTINGS:
ect...)
Donc si je clique sur le bouton quiter, le programme me mène vers le options et pareil pour le bouton jouer...
Auriez-vous une solution SVP ?
Merci d'avance.
A voir également:
- Problème avec les événement personalisés PyGame
- Evenement whatsapp - Accueil - WhatsApp
- Un evenement inattendu s'est produit league of legends ✓ - Forum jeux en ligne
- Vous allez pouvoir organiser des événements au sein des groupes WhatsApp - Accueil - Messagerie instantanée
- Evenement 410 kernel pnp - Forum Windows 10
- Evenement 10016 ✓ - Forum Windows 10
5 réponses
Bonjour,
Comment avez-vous créé la variable boutons et ses attributs (boutons.BRUIT, boutons.SETTINGS, etc.) ?
Comment avez-vous créé la variable boutons et ses attributs (boutons.BRUIT, boutons.SETTINGS, etc.) ?
Comme ceci:
# Importer PyGame
import pygame
# Bouton jouer
class BoutonJouer(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load('jouer.png')
self.image_brule = pygame.image.load('jouer_brule.png')
self.rect = self.image.get_rect()
self.new_rect = self.image_brule.get_rect()
self.new_rect.x = 200
self.new_rect.y = 163
self.rect.x = 200
self.rect.y = 320
# Bouton quiter
class Quiter(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load('quiter.png')
self.image_clique = pygame.image.load('quiter_clique.png')
self.rect = self.image.get_rect()
self.rect.x = 100
self.rect.y = 670
# Bouton options
class Options(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load('options.png')
self.image_clique = pygame.image.load('options_clique.png')
self.rect = self.image.get_rect()
self.rect.x = 150
self.rect.y = 500
bouton_jouer = BoutonJouer()
bouton_options = Options()
bouton_quiter = Quiter()
BRUIT = pygame.USEREVENT
QUIT_GAME = pygame.USEREVENT
SETTINGS = pygame.USEREVENT
"boutons" c'est le nom du scripte python et pas une variable, le code que je vous ai donné et stocké à l’intérieur et pour le reste du code tout est dans un autre scripte nommer "main".
Donc lorsque je prend une variable venant du scripte "main" je dois mettre "boutons." avant pour dire que la variable viens du scripte "boutons"
Donc lorsque je prend une variable venant du scripte "main" je dois mettre "boutons." avant pour dire que la variable viens du scripte "boutons"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question