Работаем в Tkinter с клавиатурой

Для того, чтобы в Tkinter вызывать действия по нажатию клавиш (реагировать на клавиатуру), используется почти такой же bind, как и для реакции на мышь, только привязывать надо не к холсту (Canvas), а к главному окну (root): root.bind('<Key>',keypress).

По нажатию на любую клавишу круг двигается вправо:

from tkinter import *
from random import randrange as rnd, choice

root = Tk()
root.geometry('600x600+100+100')

canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)

        
def keypress(event):
        global x
        canv.delete(ALL)
        r = 70
        x += 10
        canv.create_oval(x-r,y-r,x+r,y+r,fill='orange')
        
x = 300
y = 200 
root.bind('<Key>',keypress)

mainloop()

Чтобы с помощью клавиш управления курсором управлять кругом, нужно знать коды клавиш. В разных операционных системах коды разные.
Узнайте коды клавиш с помощью print(event.keycode) и подставьте правильный вариант для вашей операционной системы.
Ниже коды для Linux:

from tkinter import *
from random import randrange as rnd, choice

root = Tk()
root.geometry('600x600+100+100')

canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)

        
def keypress(event):
        global x
        canv.delete(ALL)
        r = 70
        if event.keycode == 114:
                x += 10
        elif event.keycode == 113:
                x -= 10
        canv.create_oval(x-r,y-r,x+r,y+r,fill='orange')
        
x = 300
y = 200 
root.bind('<Key>',keypress)

mainloop()
1. Круг должен перемещаться не только влево-вправо, но и вверх-вниз (по нажатию на соответствующие клавиши)
2. Добавьте управление клавишами WASD. Управление должно быть как с помощью «стрелок» так и WASD.
3. Добавьте: круг по щелчку возвращается в центр.
4. По нажатию любой клавиши управления курсором круг должен начинать двигаться в указанную сторону без остановки.
5. Добавьте: по щелчку мыши круг останавливается.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *