Tlačítka s Pythonem
Jak pracovat s tlačítky v Pythonu?
button_a.is_pressed() Je právě teď tlačítko A zmáčknuto? (True/False)
button_a.was_pressed() Bylo tlačítko A zmáčknuto od spuštění programu / od posledního dotazu? (True/False)
button_a.get_presses() Kolikrát bylo tlačítko A zmáčknuto od spuštění programu? (číslo)
button_a.reset_presses() Nastaví počet zmáčknutí tlačítka A na nulu.
Analogicky pro button_b.
Příklad na is_pressed()
Při stisku tlačítka A zobrazuje A, při stisku B zobrazuje B.
from microbit import display, button_a, button_b
while True:
if button_a.is_pressed():
display.show("A")
elif button_b.is_pressed():
display.show("B")
else:
display.clear()
Jak to dopadne při stisku obou? Proč? while True:
if button_a.is_pressed():
display.show("A")
elif button_b.is_pressed():
display.show("B")
else:
display.clear()
V simulátoru lze rozbalit sekci s tlačítky a jedno z nich podržet (hold).
Příklad na was_pressed()
Zobrazí A i pokud bylo tlačítko zmáčknuto během spánku.Při držení tlačítka zareaguje pouze jednou, ne opakovaně.
<<< Začínáme s Pythonem
>>> Kreslení s Pythonem (cyklus FOR)
>>> Nápisy v Pythonu (posílání zpráv)
from microbit import display, button_a
while True:
if button_a.was_pressed():
display.scroll("A")
else:
display.scroll(Image.ASLEEP)
sleep(1000)
while True:
if button_a.was_pressed():
display.scroll("A")
else:
display.scroll(Image.ASLEEP)
sleep(1000)
Příklad na get_presses()
Ukazuje počet stisknutí tlačítka A během pěti sekund.
from microbit import display, Image, sleep, button_a
display.show(Image.CHESSBOARD)
sleep(5000)
display.scroll(button_a.get_presses())
Stisknutí obou tlačítek současně
Ověření současného stisku musíme v podmínce uvést jako první:
from microbit import display, button_a, button_b
while True:
if button_a.is_pressed() and button_b.is_pressed():
while True:
if button_a.is_pressed() and button_b.is_pressed():
display.show("X")
elif button_a.is_pressed():
display.show("A")
elif button_b.is_pressed():
display.show("B")
else:
display.clear()
display.show("A")
elif button_b.is_pressed():
display.show("B")
else:
display.clear()
Je-li obtížné se trefit do obou tlačítek současně, použijeme
if button_a.was_pressed() and button_b.was_pressed():
v takovém případě novu zavolané button_a.was_pressed()vrátí False.
Řešením je nejprve stav tlačítek uložit do proměnných a pak se teprve ptát:
from microbit import *
while True:
sleep(50) # abychom stihli tlačítka stisknout
a = button_a.was_pressed()
b = button_b.was_pressed()
if a and b:
display.scroll("AB")
elif a:
display.show("A")
elif b:
display.show("B")
while True:
sleep(50) # abychom stihli tlačítka stisknout
a = button_a.was_pressed()
b = button_b.was_pressed()
if a and b:
display.scroll("AB")
elif a:
display.show("A")
elif b:
display.show("B")
Příklady
HOD KOSTKOU: Při stisku A zobraz náhodné číslo od 1 do 6.
POČÍTADLO: Při startu zobraz 0, při stisku A sniž číslo, při stisku B zvyš číslo.
Varianta násobilka = zvyšuj a snižuj o jinou hodnotu než 1.
POČÍTADLO BODŮ PRO DVA HRÁČE: Při stisku A přidávej body hráči A, při stisku B přidávej body hráči B. Při stisku A+B body zobraz.
<<< Začínáme s Pythonem
>>> Kreslení s Pythonem (cyklus FOR)
>>> Nápisy v Pythonu (posílání zpráv)