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

Programmation multimédia/Jeux Python Discussion :

Faire Bouton avec pygame


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Par défaut Faire Bouton avec pygame
    Bonjour à tous,
    Alors je débute avec python et pygame et je veux essayer de faire un jeu du pendu (déjà réalisé en mode console) mais avec une interface en utilisant pygame.

    Et j'essaye de réaliser un bouton pour chaque lettre sur lequel il faudra cliquer pour proposer une lettre mais je ne sais pas trop comment m' y prendre.
    J'ai déjà créé cette fonction qui me permet de dessiner un rectangle avec une lettre à l'intérieur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    self.rect = pygame.draw.rect(self.fond, (couleurViolet), (100,550,50,50))
    self.rend = self.police.render("A",True,(255,255,255))
    self.rect = self.rend.get_rect()
    self.fond.blit(self.rend,(110,545))
    pygame.display.update()
    Mais je voudrais remplacer le rectangle par un png.

    alors j'ai fait un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    self.rect = pygame.draw.rect(self.fond, (couleurViolet), (100,550,50,50))
    self.rend = self.police.render("A",True,(255,255,255))
    self.imageboutton = pygame.image.load("images/boutonLettre.png")
    self.rect = self.rend.get_rect()
    self.fond.blit(self.imageboutton,(100,550))
    self.fond.blit(self.rend,(110,545))
    pygame.display.update()
    Bon visiblement, j'ai bien l'image de mon bouton qui apparait avec la lettre par dessus.
    Mais est ce que ca vous semble correcte ou il y a plus simple?
    Comment faire ensuite pour le rendre cliquable?

    Merci d'avance pour vos conseils
    Fred

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    un truc dans ce genre peut-être:


    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
    fond = pygame.display.set_mode(etc...)
     
    class Boutton(object):
     
        police  = pygame.font...etc
        boutton = pygame.image.load("images/boutonLettre.png")
        rect    = boutton.get_rect()
     
        def __init__(self,lettre,position):
     
            self.image  = Boutton.boutton.copy()
            self.rect   = Boutton.rect.copy()
            lettre      = Boutton.police.render(lettre,True,(255,255,255))
            rect_lettre = lettre.get_rect(center=Boutton.rect.center)
            self.image.blit(lettre,rect_lettre)
            self.rect.topleft = position
     
     
    A = Boutton('A',(100,550))
    fond.blit(A.image,A.rect)
    display.flip()

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Par défaut
    Salut
    Ok merci ca fonctionne
    Juste pour que je comprenne bien ce que je fais : a quoi sert (object) à la ligne 3

    Et donc si je veux déclencher une action lors d'un clique sur un bouton, je dois faire une fonction dans ma classe avec collidepoint?
    Merci pour vos conseils

    Fred

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    "object" c'est une vieille habitude.

    ensuite ça dépend de beaucoup de chose.
    - combien y a t-il de bouton dans le programme ?
    - font-ils parti d'un clavier où sont-ils isolés ?
    - exécutent-ils tous la même action ou chacun a une fonction différente ?
    - si c'est un clavier, combien de clavier faut-il ?
    - y a t-il une contrainte d'économie de mémoire ?
    - ces boutons doivent-ils être réutilisables dans d'autres programmes ?
    - etc ...

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Par défaut
    Les boutons seront juste un bouton par lettre pour que le joueur propose une lettre dans le jeu du pendu.
    Une fois clique le bouton disparaîtra pour le partie en cours par exemple
    Ils exécuteront la même action c est a dire proposer une lettre ou entrer le nom du joueur

    Ensuite il y aura peut être un autre bouton pour lancer une nouvelle partie ou quitter le jeu

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    vaut mieux faire une class Clavier(contenant les boutons sous forme de liste de rects) plutôt qu'une class Boutons.

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

Discussions similaires

  1. [Débutant] Charger images puis les faire défiler avec des boutons
    Par Sylver52 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 07/04/2009, 15h19
  2. Réponses: 3
    Dernier message: 16/12/2008, 00h09
  3. Faire un bouton avec une image ?
    Par blanchonvincent dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 29/04/2007, 13h14
  4. Débutant: Comment faire un bouton avec un mot de passe
    Par ch@rles.be dans le forum Sécurité
    Réponses: 1
    Dernier message: 06/02/2007, 19h37
  5. Faire clignoter un bouton avec Eclipse
    Par Marty McFly dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/04/2006, 03h03

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