Joined SingleDynamicEffect and MultiDynamicEffect into one file and finally got different timings for both classes to work.

This commit is contained in:
2019-06-05 06:27:07 +02:00
parent b2ff3bdc54
commit 57815cb3bf
6 changed files with 50 additions and 73 deletions

36
src/effect_dynamic.cpp Normal file
View File

@ -0,0 +1,36 @@
#include "effect_dynamic.h"
#include "functions.h"
#include "config.h"
SingleDynamicEffect::SingleDynamicEffect() {
init();
}
void SingleDynamicEffect::init() {
for (int i=0; i<tile_count; i++) tiles[i] = CHSV(baseHue + random8(64), 180, 255);
}
void SingleDynamicEffect::loop() {
EVERY_N_MILLISECONDS( EFFECT_SINGLE_DYNAMIC_LOOP_TIME ) {
tiles[random8(tile_count)] = CHSV(baseHue + random8(64), 180, 255);
}
this->draw();
}
void SingleDynamicEffect::draw() {
for (int x=0; x<window.w; x++) for (int y=0; y<window.h; y++) {
int index = y/2 * window.w/2 + x/2;
setPixel(window, x, y, tiles[index]);
}
}
boolean SingleDynamicEffect::can_be_shown_with_clock() {
return true;
}
void MultiDynamicEffect::loop() {
EVERY_N_MILLISECONDS( EFFECT_MULTI_DYNAMIC_LOOP_TIME ) {
for (int i=0; i<tile_count; i++) tiles[i] = CHSV(baseHue + random8(64), 180, 255);
}
this->draw();
}