Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pygame Touche du pave numérique ne fonctionne pas

K_0, K_1, K_2 etc ...

    27 mai 2019 à 11:33:07

    Bonjour , 

    Je suis actuellement entrain de crée un menu avec plusieurs choix du style 

    - choix 1 taper : 1

    _ choix 2 taper : 2

    ect... mais le souci c'est que je n'arrive pas a faire fonctionner mon code avec le les K_1 K_2 ect.. 

    Si j'affecte une autre touche ça fonctionne ou si j'affecte la valeur de K_1 par exemple sa fonctionne aussi 

    mais pas avec la variable ....

    voici un bout du code concerné

    celui ci ne fonctionne pas K_0  écrit comme cela  

    from lib.base_menu import BaseMenu
    import sys
    import pygame
    from pygame.locals import *
    
    class Connection(BaseMenu):
        """
        Pas de modifictaion par rapport a Welcome seul les possibilités differe
        previous_screen : l objet par lequel celui ci a etait cree
    
        """
    
        def __init__(self, screen):
    
            super().__init__()
            self.previous_sreen = screen
            self.backgound_menu = pygame.image.load("lib/pictures/image_connexion.jpg")
    
        def user_input(self, event_value):
    
            while True:
                if event_value.type == QUIT:
                    pygame.quit()
                    sys.exit(0)
                elif event_value.type == KEYDOWN and event_value.key == K_0:
                    print('plop')
                    return self.previous_sreen
                event_value = pygame.event.wait()


    celui la fonctionne j'ai mis la valeur de K_1 a la place de 'K_1'

    import sys
    import pygame
    from pygame.locals import *
    from lib.base_menu import BaseMenu
    from lib.connection import Connection
    
    
    class Welcome(BaseMenu):
        """
        Class welcome affiche les possibilités qui sont offerte à l'utilisateur se charge de renvoyer l'objet suivant
    
        methode identique a Basemenu modifier pour les besoin de la classe
    
    
        """
    
        def __init__(self):
    
            super().__init__()
            self.backgound_menu = pygame.image.load("lib/pictures/image_welcome.jpg")
    
        def user_input(self, event_value):
            while True:
                if event_value.type == QUIT:
                    pygame.quit()
                    sys.exit(0)
                elif event_value.type == KEYDOWN and event_value.key == 257:
                    print('plop')
                    return Connection(self)
                elif event_value.type == KEYDOWN:
                    print(event_value.key)
                event_value = pygame.event.wait()

    Pour info je suis sur ubuntu 18lts

    D'avance merci de votre aide 

    -
    Edité par 64fauchenicolas 27 mai 2019 à 11:33:40

    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2019 à 15:10:40

      Bonjour,

      La valeur de K_1 n'est pas 257. En faite, pygame fait la différence entre les numéros en haut du clavier et ceux du pavé numérique.

      Pour les touches du clavier numérique les constantes sont K_KP0 ; K_KP1 ; ... ; K_KP9. 257 correspond à la valeur de K_KP1 d'après mon interpréteur:

      >>> import pygame
      >>> from pygame.locals import *
      >>> K_1
      49
      >>> K_KP1
      257

      Sur openclassroom il y a un cours sur pygame ici et la partie sur les events.

      J'espère vous avoir aidé.

      -
      Edité par Mirejai 27 mai 2019 à 15:14:31

      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2019 à 16:19:00

        ha ok , je vais tester ça ce soir je viens redonner la confirmation sur le forum 

        merci 

        • Partager sur Facebook
        • Partager sur Twitter
          9 août 2019 à 19:11:37

          J'avais le même problème, et ai testé ce qu'a proposé Kagoum et ça fonctionne parfaitement ! (J'utilise Python 3.7)

          Merci

          • Partager sur Facebook
          • Partager sur Twitter

          Pygame Touche du pave numérique ne fonctionne pas

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown