Je veux faire bouger un sprite sur la toile et essayé d'utiliser les raccourcis clavier comme contrôles. Quand je cours le programme il ne bouge pas jusqu'à ce que j'essaye la clé correcte. J'ai testé avec les boutons de la souris et ça fonctionne bien.Comment réparer les raccourcis clavier dans tkinter
ajouter du code:
from tkinter import *
class MainGame:
def __init__(self):
self.grid = [[""]*15 for n in range(15)]
self.grid[14][3] = 1
print(self.grid)
self.canvas = Canvas(root, width = 900, height = 900)
self.canvas.pack()
self.a, self.b = 45, 175
def noreaction(self, event):
print("It clicked")
print(self.a)
self.a += 50
self.b += 50
self.canvas.create_image(self.a, self.b, image = self.pl, tags = "p2Tag")
self.canvas.delete("p1Tag")
self.canvas.tag_bind("p2Tag", "<Key-q>", self.noreaction)
def run(self):
self.pl = PhotoImage(file = "player.png")
self.canvas.create_image(self.a, self.b, image = self.pl, tags = "p1Tag")
self.canvas.tag_bind("p1Tag", "<Key>", self.noreaction)
self.x0, self.y0, self.x1, self.y1 = -30, 150, 20, 200
for self.row in self.grid:
for self.column in self.row:
self.x0 += 50
self.x1 += 50
self.cell = self.canvas.create_rectangle(self.x0, self.y0, self.x1, self.y1)
self.y0 += 50
self.y1 += 50
self.x0 = -30
self.x1 = 20
root = Tk()
root.focus_set()
obj = MainGame()
obj.run()
root.mainloop()
Veuillez poster votre code au lieu d'une image. Je ne veux pas retaper tout ce code. –
Le composant auquel vous avez ajouté la liaison n'a probablement pas de focus. Essayez d'utiliser 'bind_all' au niveau racine. –
S'il vous plaît ne pas poster un lien pour le code sur un autre site. Prenez le temps de poster un [mcve] dans la question elle-même. Si vous n'êtes pas prêt à prendre le temps d'écrire une bonne question, la plupart des gens ne voudront pas prendre le temps d'écrire une bonne réponse. –