[PYTHON]Evénements au clavier
Paulo62500
Messages postés
207
Statut
Membre
-
Paulo62500 Messages postés 207 Statut Membre -
Paulo62500 Messages postés 207 Statut Membre -
Bonjour à tous,
je commence à programmer un petit snake en python et donc pour gérer les déplacements je lie certaines touches du clavier à des événements (méthodes entre autres)
Le problème c'est que pour des touches claviers, les méthodes ne s'actionnent pas !
Je signale cependant, que lorsque j'ai essayé avec des clics souris ça fonctionnait...
Je poste quelques parties de mon code pour que vous puissiez mieux vous y retrouver :p
class Application(Frame):
"""Fenêtre principale de l'application"""
def __init__(self):
Frame.__init__(self)
self.master.title('>>>>PySnake<<<<')
# Canevas pour le jeu (déplacement du serpent)
self.long = 800
self.haut = 600
self.jeu = Canvas(self, width =self.long, height =self.haut, bg ='black',
bd =3, relief =SUNKEN)
# Canvevas pour les infos :
self.info = Canvas(self, width =50, height =self.haut, bg = 'light grey', bd =3)
self.info.pack(side =RIGHT, padx =8)
self.jeu.pack(padx =8, pady =8, side =BOTTOM)
# Instanciation du serpent dans 'self.jeu'
self.s = Snake(self.jeu)
# Instanciation du menu dans la fenêtre principale :
self.menu = Pupitre(self)
self.menu.pack(side =TOP, expand =NO, fill =X)
# Instanciations des touches événements pour gérer les déplacements :
self.bind('x', self.s.deplHaut)
self.bind('<Down>', self.s.deplBas)
self.bind('<Left>', self.s.deplGauche)
self.bind('<Right>', self.s.deplDroite)
............................etc
class Snake :
"""Serpent"""
def __init__(self, boss =None, coul = 'red') :
self.boss = boss #Référence du canvevas
self.appli = boss.master #Référence de la fenêtre d'application
self.coul = coul #Couleur du corps du serpent
self.dx = 2
self.dy = 0
.............................etc
# Quelques méthodes en exemple...
def deplGauche(self, event) :
"Le serpent part vers la gauche <=> il n'est pas vers la droite"
if self.dx == 0 :
self.dy =0
self.dx =-1
def deplDroite(self, event) :
"Le serpent part vers la droite <=> il n'est pas vers la gauche"
if self.dx == 0 :
self.dy = 0
self.dx = 1
...........................etc
Merci pour votre aide (je l'espère :))
je commence à programmer un petit snake en python et donc pour gérer les déplacements je lie certaines touches du clavier à des événements (méthodes entre autres)
Le problème c'est que pour des touches claviers, les méthodes ne s'actionnent pas !
Je signale cependant, que lorsque j'ai essayé avec des clics souris ça fonctionnait...
Je poste quelques parties de mon code pour que vous puissiez mieux vous y retrouver :p
class Application(Frame):
"""Fenêtre principale de l'application"""
def __init__(self):
Frame.__init__(self)
self.master.title('>>>>PySnake<<<<')
# Canevas pour le jeu (déplacement du serpent)
self.long = 800
self.haut = 600
self.jeu = Canvas(self, width =self.long, height =self.haut, bg ='black',
bd =3, relief =SUNKEN)
# Canvevas pour les infos :
self.info = Canvas(self, width =50, height =self.haut, bg = 'light grey', bd =3)
self.info.pack(side =RIGHT, padx =8)
self.jeu.pack(padx =8, pady =8, side =BOTTOM)
# Instanciation du serpent dans 'self.jeu'
self.s = Snake(self.jeu)
# Instanciation du menu dans la fenêtre principale :
self.menu = Pupitre(self)
self.menu.pack(side =TOP, expand =NO, fill =X)
# Instanciations des touches événements pour gérer les déplacements :
self.bind('x', self.s.deplHaut)
self.bind('<Down>', self.s.deplBas)
self.bind('<Left>', self.s.deplGauche)
self.bind('<Right>', self.s.deplDroite)
............................etc
class Snake :
"""Serpent"""
def __init__(self, boss =None, coul = 'red') :
self.boss = boss #Référence du canvevas
self.appli = boss.master #Référence de la fenêtre d'application
self.coul = coul #Couleur du corps du serpent
self.dx = 2
self.dy = 0
.............................etc
# Quelques méthodes en exemple...
def deplGauche(self, event) :
"Le serpent part vers la gauche <=> il n'est pas vers la droite"
if self.dx == 0 :
self.dy =0
self.dx =-1
def deplDroite(self, event) :
"Le serpent part vers la droite <=> il n'est pas vers la gauche"
if self.dx == 0 :
self.dy = 0
self.dx = 1
...........................etc
Merci pour votre aide (je l'espère :))
A voir également:
- [PYTHON]Evénements au clavier
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Clavier de l'ordinateur - Guide
- & Sur clavier - Guide
- Clavier iphone chiffre et lettre - Guide
- Changer clavier qwerty en azerty - Guide
16 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arrete avec tes uppp,oui tu auras des réponces mais les membres qui peuvent t'aider ne sont pas encore connectés,si tu veux,en tant que membre de CCM je peux te donner le nom de deux membres qui ont une très grande réputation et qui peuvent sans doute t'aider,mais sinon dsl je ne sais pas comment t'aider a part ça^^
Le problème est que si je ne fais pas de "up", le message partira loin et donc les membres qui pourraient m'aider ne verront pas le message, par conséquent je n'aurais pas de réponse...
De plus comme je ne sais pas qui peut m'aider et ce quand, je pense que la meilleure solution est de faire cela en attendant un message qui m'aidera...(je ne vois pas ce qu'il y a de gênant à faire remonter un topic)
A+ the_dark_knight
De plus comme je ne sais pas qui peut m'aider et ce quand, je pense que la meilleure solution est de faire cela en attendant un message qui m'aidera...(je ne vois pas ce qu'il y a de gênant à faire remonter un topic)
A+ the_dark_knight