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 *
while True:
    if button_a.is_pressed():
        display.show("A")
    elif button_b.is_pressed():
        display.show("B")
    else:
        display.clear()

Příklad na was_pressed()

Zobrazí A i pokud bylo tlačítko zmáčknuto během spánku.
from microbit import *
while True:
    if button_a.was_pressed():
        display.scroll("A")
    else:
        display.scroll(Image.ASLEEP)
    sleep(1000)

Příklad na get_pressed()

Ukazuje počet stisknutí tlačítka A. Výsledné číslo přetypujeme na str.
from microbit import *
while True:
    sleep(3000)
    display.scroll(str(button_a.get_presses()))

Stisknutí obou tlačítek současně

Pokud bychom zcela intuitivně použili
if button_a.is_pressed() and button_b.is_pressed():
zjistíme, že je velmi obtížné se trefit do obou tlačítek současně. Použijeme tedy raději 
if button_a.was_pressed() and button_b.was_pressed():
narazíme na to, že po ověření, zda byla tlačítka stisknuta, již znovu 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) 


Komentáře

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

V čem programovat micro:bit?

Úvod ve škole i v kroužku

Začínáme v MakeCode

Obrázky

Začínáme s Pythonem