[PYTHON]Evénements au clavier

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 :))
A voir également:

16 réponses

Paulo62500 Messages postés 207 Statut Membre 6
 
up
0
Paulo62500 Messages postés 207 Statut Membre 6
 
upp
0
Paulo62500 Messages postés 207 Statut Membre 6
 
uppp
0
Paulo62500 Messages postés 207 Statut Membre 6
 
upppppp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Paulo62500 Messages postés 207 Statut Membre 6
 
up
0
Paulo62500 Messages postés 207 Statut Membre 6
 
Personne ne peut m'aider?

J'en doute...
0
Paulo62500 Messages postés 207 Statut Membre 6
 
up
0
Paulo62500 Messages postés 207 Statut Membre 6
 
upp
0
Paulo62500 Messages postés 207 Statut Membre 6
 
Bon, je pense que je n'aurais pas de réponse...
0
Paulo62500 Messages postés 207 Statut Membre 6
 
up
0
Paulo62500 Messages postés 207 Statut Membre 6
 
upp
0
Profil bloqué
 
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^^
0
Paulo62500 Messages postés 207 Statut Membre 6
 
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
0
Paulo62500 Messages postés 207 Statut Membre 6
 
Merci pour votre aide tout de même!
0
Profil bloqué
 
de rien,j'espere que tu trouvera de l'aide
0
Paulo62500 Messages postés 207 Statut Membre 6
 
up
0