==== Zachytávání kláves ==== from turtle import Screen,Turtle zelvicka = Turtle('triangle') wn = Screen() wn.setup(700, 700) # Funkce pro obsluhu udalosti stisku klavesy # - zelvicka se zbarvi do cervena def obarviNaCerveno(): zelvicka.color('red') # - zelvicka se zbarvi na cerno def obarviNaCerno(): zelvicka.color('black') # Napojeni na stisk klavesy wn.onkey(obarviNaCerveno,'Up') wn.onkey(obarviNaCerno,'Down') wn.listen() # kresleni hvezdicky for i in range(1,100): zelvicka.forward(200) zelvicka.left(261) 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). ==== Stisknutá klávesa ==== 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. Udržujeme si informaci (boolean - hodnota ''True'' nebo ''False'') o tom, zda je právě klávesa stisklá, nebo ne. Zároveň zde používám [[mainloop|Smyčku událostí]] 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)