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č? 
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ě.
from microbit import display, button_a
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():
        display.show("X")
    elif button_a.is_pressed():
        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")

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) 


Populární příspěvky z tohoto blogu

Co je BBC micro:bit?

Jak začít?

Projekty s PINy

Příklady pro začátečníky

Úvod ve škole i v kroužku

Začínáme v MakeCode

Semafor a RGB dioda

Micro:bit na prvním stupni

V čem programovat micro:bit?

Základ programování a proč pracovní listy