Zachytávání kláves
from turtle import Turtle, Screen # Setup Screen wn = Screen() wn.setup(700, 700) wn.title('white') wn.bgcolor('black') # Create Player player = Turtle('triangle') player.speed('fastest') player.color('white') player.penup() def forward(): player.forward(20) def left(): player.left(90) def right(): player.right(90) wn.onkey(forward, 'Up') wn.onkey(left, 'Left') wn.onkey(right, 'Right') wn.listen() wn.mainloop()
Navázaná je pouze událost keydown, neboli když jde klávesa dolů a když se operační systém rozhodne, že vám ji (stisknutou pošle).
Pro většinu použití tedy potřebujeme evidenci která klávesa je stisknutá. Proto odchytáváme keydown - stisk a keyup - zvednutí. Mezi těmito událostmi považujeme klávesu za stisknutou.
from turtle import Screen,Turtle import time wn = Screen() wn.setup(700, 700) player = Turtle('triangle') stisknutaUp = False def stisk_klavesyUp(): global stisknutaUp stisknutaUp = True def uvolneni_klavesyUp(): global stisknutaUp stisknutaUp = False wn.onkeypress(stisk_klavesyUp, 'Up') wn.onkeyrelease(uvolneni_klavesyUp, 'Up') def pohyb(): if stisknutaUp: player.forward(10) wn.listen() while True: pohyb() #nejaky dummy pohyb player.left(1) player.right(1)