Код прекрасно объясняет, почему он перемещается влево только потому, что ни одно из условий if
не является истинным, так как event.keysym
возвращает ключевые слова, такие как «Вверх», «Вниз», «Вправо» и т. Д., ВВы можете видеть, что первая буква является заглавной по сравнению с кодом event.keysym == 'up'
, все они ниже. Короче говоря, «вверх» не равно «вверх» в соответствии с питоном.
Таким образом, изменяя «вверх», «вниз», «вправо» на «Вверх», «Вниз», «Вправо» соответственно должны решить проблему.
Вы также можете проверить и сравнить event.keysym
, распечатав их на консоли.Также хорошо подходит одна привязка c.bind_all('<Key>', mtri)
.
Вот так ..
def mtri(event):
print(event.keysym)
if event.keysym == 'Up':
print('up')
c.move(1, 0, -3)
elif event.keysym == 'Down':
print('down')
c.move(1, 0, 3)
elif event.keysym == 'Right':
print('right')
c.move(1, 3, 0)
else:
print('left')
c.move(1, -3, 0)