IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

Bouton rectangle dans classe pygame [Python 3.X]


Sujet :

GUI Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Bouton rectangle dans classe pygame
    Bonjour, je souhaite faire un jeu avec un rectangle comme bouton. Sauf qu'après l'avoir mit dans une classe il ne s'affiche plus mais il est toujours clickable
    voici mon main :
    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
     
    import pygame
    from ressources import Accueil
     
    pygame.init()
     
    # generer la fenetre du jeu
    pygame.display.set_caption("Title")
    fenetre = pygame.display.set_mode((1000, 600))
     
    # charger nos classes
    Accueil = Accueil(fenetre)
    Service = Service()
     
    Accueil.accueil()
     
    # boucle tant que cette condition est vrai
    running = True
    while running:
     
        # Actualisation de l'affichage
        pygame.display.flip()
     
        # retourne 1 si le curseur est au dessus du rectangle
        mouse_xy = pygame.mouse.get_pos()
        over_start = Accueil.rect_start.collidepoint(mouse_xy)
        over_credit = Accueil.rect_credit.collidepoint(mouse_xy)
     
        # si le joueur ferme cette fenetre
        for event in pygame.event.get():
            # que l'evenement est fermeture de fenetre
            if event.type == pygame.QUIT:
                running = False
                pygame.quit()
                print("Fermeture du jeu")
            elif event.type == pygame.MOUSEBUTTONDOWN and over_credit:
                    Accueil.credit()

    et voici ma classe:
    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
     
    import pygame
     
    class Accueil:
     
        def __init__(self, fenetre):
            self.fenetre = fenetre
            self.background = pygame.Surface(self.fenetre.get_size())
            self.background.fill((0,0,0))
            self.rect_credit = pygame.draw.rect(self.fenetre, (0,255,8), [525, 375, 425, 50])
            self.font = pygame.font.Font(None, 70)
            self.Text_accueil = self.font.render("text bouton",1,(10,10,10))
            self.Text_credit1 = self.font.render("du text",1,(0,255,8))
     
        def accueil(self):
            # Ajout du fond dans la fenêtre
            self.fenetre.blit(self.background, (0, 0))
            # rect
            self.rect_credit
            # text
            self.fenetre.blit(self.Text_accueil, (625, 378))
     
        def credit(self):
            # Ajout du fond dans la fenêtre
            self.fenetre.blit(self.background, (0, 0))
            # text
            self.fenetre.blit(self.Text_credit1, (235, 100))

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    j'ai trouvé

    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
     
    import pygame
    from ressources import Accueil
     
    pygame.init()
     
    # generer la fenetre du jeu
    pygame.display.set_caption("Title")
    fenetre = pygame.display.set_mode((1000, 600))
     
    # charger nos classes
    Accueil = Accueil(fenetre)
     
    Accueil.accueil()
     
    # boucle tant que cette condition est vrai
    running = True
    while running:
     
        # Actualisation de l'affichage
        pygame.display.flip()
     
        # retourne 1 si le curseur est au dessus du rectangle
        mouse_xy = pygame.mouse.get_pos()
        if Accueil.rect_credit!='':
            over_credit = Accueil.rect_credit.collidepoint(mouse_xy)
     
        # si le joueur ferme cette fenetre
        for event in pygame.event.get():
            # que l'evenement est fermeture de fenetre
            if event.type == pygame.QUIT:
                running = False
                pygame.quit()
                print("Fermeture du jeu")
            elif event.type == pygame.MOUSEBUTTONDOWN and over_credit:
                    Accueil.credit()
    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
     
    import pygame
     
    class Accueil:
     
        def __init__(self, fenetre):
            self.fenetre = fenetre
            self.background = pygame.Surface(self.fenetre.get_size())
            self.background.fill((0,0,0))
            self.rect_credit = ''
            self.font = pygame.font.Font(None, 70)
            self.Text_accueil = self.font.render("text bouton",1,(10,10,10))
            self.Text_credit1 = self.font.render("du text",1,(0,255,8))
     
        def accueil(self):
            # Ajout du fond dans la fenêtre
            self.fenetre.blit(self.background, (0, 0))
            # rect
            self.rect_credit = pygame.draw.rect(self.fenetre, (0,255,8), [525, 375, 425, 50])
            self.font = pygame.font.Font(None, 70)
            # text
            self.fenetre.blit(self.Text_accueil, (625, 378))
     
        def credit(self):
            # Ajout du fond dans la fenêtre
            self.fenetre.blit(self.background, (0, 0))
            # text
            self.fenetre.blit(self.Text_credit1, (235, 100))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. orientation d'un rectangle dans une classe
    Par Miska59 dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/06/2019, 19h33
  2. Réponses: 5
    Dernier message: 15/09/2011, 22h53
  3. recuperer un bouton HTML dans ma classe java
    Par riadhhwajdii dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 22/03/2010, 17h30
  4. [JTable] Vider avec bouton dans classe extérieure
    Par jerome71300 dans le forum Composants
    Réponses: 8
    Dernier message: 09/08/2008, 16h38
  5. Action d'un bouton créé dans classe externe
    Par jerome71300 dans le forum Composants
    Réponses: 6
    Dernier message: 04/08/2008, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo