Toggle Navigation
Hatchery
Eggs
disco
__init__.py
Users
Badges
Login
Register
MCH2022 badge?
go to mch2022.badge.team
__init__.py
raw
Content
import display, touchpads, random, virtualtimers as vt ONE_THIRD = 1.0/3.0 ONE_SIXTH = 1.0/6.0 TWO_THIRD = 2.0/3.0 def _v(m1, m2, hue): hue = hue % 1.0 if hue < ONE_SIXTH: return m1 + (m2-m1)*hue*6.0 if hue < 0.5: return m2 if hue < TWO_THIRD: return m1 + (m2-m1)*(TWO_THIRD-hue)*6.0 return m1 def hls_to_rgb(h, l, s): if s == 0.0: return l, l, l if l <= 0.5: m2 = l * (1.0+s) else: m2 = l+s-(l*s) m1 = 2.0*l - m2 return (_v(m1, m2, h+ONE_THIRD), _v(m1, m2, h), _v(m1, m2, h-ONE_THIRD)) def hls_to_color(h, l, s): r, g, b = hls_to_rgb(h, l, s) return (int(r * 255) << 16) | (int(g * 255) << 8) | int(b * 255) def random_color(): h = random.random() return hls_to_color(h, 0.5, 1) mode = 0 fill_h = 0 buf = [random_color() for i in range(0, 16)] def on_touch(pressed): global mode if pressed == touchpads.LEFT: if mode > 0: mode = mode - 1 elif pressed == touchpads.RIGHT: if mode < 4: mode = mode + 1 print("Key:", pressed, "mode =", mode) def update(): global mode, fill_h, buf if mode == 0: for x in range(0, 4): for y in range(0, 4): display.drawPixel(x, y, random_color()) display.flush() return 600 elif mode == 1: x = random.randint(0, 4) y = random.randint(0, 4) display.drawPixel(x, y, random_color()) display.flush() return 50 elif mode == 2: buf = buf[4:] + [random_color() for i in range(0, 4)] for x in range(0, 4): for y in range(0, 4): display.drawPixel(x, y, buf[ y + x * 4]) display.flush() return 400 elif mode == 3: c = random_color() display.drawFill(c) display.flush() return 300 elif mode == 4: fill_h += 0.01 if fill_h > 1.0: fill_h = 0 c = hls_to_color(fill_h, 0.6, 1.0) display.drawFill(c) display.flush() return 16 return 1000 touchpads.on(touchpads.LEFT, on_touch) touchpads.on(touchpads.RIGHT, on_touch) vt.begin() vt.new(50, update)