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)