Я пытаюсь переместить квадрат с помощью клавиш WASD, с моей реализацией у меня возникают проблемы при передаче аргументов в функцию обновления функции.Я надеюсь заставить его слушать событие с клавиатуры.Кто-нибудь может мне помочь?
class Robot(object):
def __init__(self):
self.speed = [0, 0] # iniital speed ste to 0
self.image = window.create_rectangle(0, 0, 20, 20, fill="white") # sample robot
window.bind_all("<KeyPress-w>", self.update)
window.bind_all("<KeyPress-a>", self.update)
window.bind_all("<KeyPress-s>", self.update)
window.bind_all("<KeyPress-d>", self.update)
# window.bind_all("<KeyPress-x>", self.deploy)
def move(self, object, x, y):
window.move(self.image, x, y)
def update(self, event):
if event.keysym == 'D':
self.speed[1] = 1
self.move(self.image, self.speed[0], 0)
if event.keysym == "A":
self.speed[1] = -1
self.move(self.image, self.speed[0], 0)
if event.keysym == "W":
self.speed[0] = -1
self.move(self.image, 0, self.speed[1])
if event.keysym == "S":
self.speed[0] = 1
self.move(self.image, 0, self.speed[1])
def deploy(self):
pass
Вот точка запуска
while True:
pl1 = Robot()
pl1.update() # here is the problem
tk.update()
time.sleep(10)