minor aesthetic fixes
This commit is contained in:
parent
54b80f74b2
commit
3097a1b17e
@ -2854,7 +2854,7 @@ static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravit
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* bouncing balls on a track track Effect modified from Air Cookie's bouncing balls
|
* bouncing balls on a track track Effect modified from Aircoookie's bouncing balls
|
||||||
* Courtesy of pjhatch (https://github.com/pjhatch)
|
* Courtesy of pjhatch (https://github.com/pjhatch)
|
||||||
* https://github.com/Aircoookie/WLED/pull/1039
|
* https://github.com/Aircoookie/WLED/pull/1039
|
||||||
*/
|
*/
|
||||||
@ -2882,7 +2882,7 @@ static uint16_t rolling_balls(void) {
|
|||||||
for (int i = 0; i < maxNumBalls; i++) {
|
for (int i = 0; i < maxNumBalls; i++) {
|
||||||
balls[i].lastBounceUpdate = strip.now;
|
balls[i].lastBounceUpdate = strip.now;
|
||||||
balls[i].velocity = 20.0f * float(random16(1000, 10000))/10000.0f; // number from 1 to 10
|
balls[i].velocity = 20.0f * float(random16(1000, 10000))/10000.0f; // number from 1 to 10
|
||||||
if (random8()<128) balls[i].velocity = -balls[i].velocity;
|
if (random8()<128) balls[i].velocity = -balls[i].velocity; // 50% chance of reverse direction
|
||||||
balls[i].height = (float(random16(0, 10000)) / 10000.0f); // from 0. to 1.
|
balls[i].height = (float(random16(0, 10000)) / 10000.0f); // from 0. to 1.
|
||||||
balls[i].mass = (float(random16(1000, 10000)) / 10000.0f); // from .1 to 1.
|
balls[i].mass = (float(random16(1000, 10000)) / 10000.0f); // from .1 to 1.
|
||||||
}
|
}
|
||||||
@ -2897,12 +2897,12 @@ static uint16_t rolling_balls(void) {
|
|||||||
float timeSinceLastUpdate = float((strip.now - balls[i].lastBounceUpdate))/cfac;
|
float timeSinceLastUpdate = float((strip.now - balls[i].lastBounceUpdate))/cfac;
|
||||||
float thisHeight = balls[i].height + balls[i].velocity * timeSinceLastUpdate; // this method keeps higher resolution
|
float thisHeight = balls[i].height + balls[i].velocity * timeSinceLastUpdate; // this method keeps higher resolution
|
||||||
// test if intensity level was increased and some balls are way off the track then put them back
|
// test if intensity level was increased and some balls are way off the track then put them back
|
||||||
if (thisHeight<-.5 || thisHeight> 1.5){
|
if (thisHeight < -0.5f || thisHeight > 1.5f){
|
||||||
thisHeight = balls[i].height = (float(random16(0, 10000)) / 10000.0f); // from 0. to 1.
|
thisHeight = balls[i].height = (float(random16(0, 10000)) / 10000.0f); // from 0. to 1.
|
||||||
balls[i].lastBounceUpdate = strip.now;
|
balls[i].lastBounceUpdate = strip.now;
|
||||||
}
|
}
|
||||||
// check if reached ends of the strip
|
// check if reached ends of the strip
|
||||||
if ((thisHeight <= 0.0f && balls[i].velocity<0.0f) || (thisHeight >= 1.0f && balls[i].velocity > 0.0f)) {
|
if ((thisHeight <= 0.0f && balls[i].velocity < 0.0f) || (thisHeight >= 1.0f && balls[i].velocity > 0.0f)) {
|
||||||
balls[i].velocity = -balls[i].velocity; // reverse velocity
|
balls[i].velocity = -balls[i].velocity; // reverse velocity
|
||||||
balls[i].lastBounceUpdate = strip.now;
|
balls[i].lastBounceUpdate = strip.now;
|
||||||
balls[i].height = thisHeight;
|
balls[i].height = thisHeight;
|
||||||
@ -2918,7 +2918,7 @@ static uint16_t rolling_balls(void) {
|
|||||||
if ((tcollided > 2.0f) && (tcollided < float(strip.now - balls[j].lastBounceUpdate))) { // 2ms minimum to avoid duplicate bounces
|
if ((tcollided > 2.0f) && (tcollided < float(strip.now - balls[j].lastBounceUpdate))) { // 2ms minimum to avoid duplicate bounces
|
||||||
balls[i].height = balls[i].height + balls[i].velocity*(tcollided + float(balls[j].lastBounceUpdate - balls[i].lastBounceUpdate))/cfac;
|
balls[i].height = balls[i].height + balls[i].velocity*(tcollided + float(balls[j].lastBounceUpdate - balls[i].lastBounceUpdate))/cfac;
|
||||||
balls[j].height = balls[i].height;
|
balls[j].height = balls[i].height;
|
||||||
balls[i].lastBounceUpdate = (unsigned long)(tcollided + .5f) + balls[j].lastBounceUpdate;
|
balls[i].lastBounceUpdate = (unsigned long)(tcollided + 0.5f) + balls[j].lastBounceUpdate;
|
||||||
balls[j].lastBounceUpdate = balls[i].lastBounceUpdate;
|
balls[j].lastBounceUpdate = balls[i].lastBounceUpdate;
|
||||||
float vtmp = balls[i].velocity;
|
float vtmp = balls[i].velocity;
|
||||||
balls[i].velocity = ((balls[i].mass - balls[j].mass)*vtmp + 2.0f*balls[j].mass*balls[j].velocity)/(balls[i].mass + balls[j].mass);
|
balls[i].velocity = ((balls[i].mass - balls[j].mass)*vtmp + 2.0f*balls[j].mass*balls[j].velocity)/(balls[i].mass + balls[j].mass);
|
||||||
|
Loading…
Reference in New Issue
Block a user