From: Nathaniel Wesley Filardo Date: Sat, 23 Jan 2021 01:25:00 +0000 (+0000) Subject: draw-happy: add optional animated "hearts" in the corners X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=76a6e98a6d60f9b913481b6c6bec65fe1c2d1132;p=acmetensortoys-esp-lua_lamp draw-happy: add optional animated "hearts" in the corners --- diff --git a/draw-happy.lua b/draw-happy.lua index 963479d..eec10aa 100644 --- a/draw-happy.lua +++ b/draw-happy.lua @@ -4,10 +4,44 @@ -- 08 x o x o o x o x -- 16 o o o o o o o o -- 24 o o o x x o o o --- + +local face = {2,7,9,11,14,16,28,29} +local dots = {1,8,32,25} + return function(t,fb,p) local c = p[1] local i,v fb:fill(0,0,0) - for i,v in ipairs({2,7,9,11,14,16,28,29}) do fb:set(v,c) end + for i,v in ipairs(face) do fb:set(v,c) end + + local hc = p[2] + local z = string.char(0,0,0) + if hc then + local ix = 1 + local nix = 2 + + local adv, blink_off, blink_on + function blink_off() + fb:set(dots[ix], z) + t:alarm(100, tmr.ALARM_SINGLE, blink_on) + dodraw() + end + + function blink_on() + fb:set(dots[ix], hc) + t:alarm(400, tmr.ALARM_SINGLE, adv) + dodraw() + end + + function adv() + fb:set(dots[ix], z) + fb:set(dots[nix], hc) + ix = nix + nix = (nix == #dots) and 1 or (nix + 1) + t:alarm(400, tmr.ALARM_SINGLE, blink_off) + dodraw() + end + + adv() + end end