==== 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)