Smooth speed transition between animating and frozen

master
Felipe Manga 2024-01-15 11:34:25 +00:00
parent d4f2ecd8fe
commit 6477d4b60c
1 changed files with 19 additions and 7 deletions

View File

@ -431,15 +431,27 @@ const WHITE = g.setColor.bind(g, 0xFFFF);
let lcdBuffer = 0, let lcdBuffer = 0,
start = 0; start = 0;
let locked = false; let locked = false,
var interval; charging = false;
var interval = 30, timeout;
function setupInterval() { function setupInterval() {
if (interval) if (timeout)
clearInterval(interval); clearTimeout(timeout);
if (!locked) if (!locked || charging)
tick(); tick(1);
interval = setInterval(tick.bind(null, !locked), locked ? 60 * 1000 : 70); let trigger;
let schedule = interval => {
timeout = setTimeout(trigger, interval | 0);
// print(interval);
};
trigger = _ => {
if (!locked || charging) interval = 30;
else interval -= (interval - 130) * 0.15;
tick(1);
schedule(interval > 120 ? 60000 : interval);
};
schedule(interval);
} }
function test(addr, y) { function test(addr, y) {