turtle:klavesy
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 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)
turtle/klavesy.txt · Poslední úprava: 2023/02/08 23:35 autor: 127.0.0.1