pitrix/src/effect_dynamic.cpp

37 lines
965 B
C++

#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->width; x++) for (int y=0; y<window->height; y++) {
int index = y/2 * window->width/2 + x/2;
window->setPixel(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();
}