diff --git a/src/display.cpp b/src/display.cpp index 0c667f46ef723e313bd8a1780988b8237f845f7c..4366bd3f50412b85bea64314458958d94dd2f0d2 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -29,7 +29,7 @@ void setupDisplay() matrix.addLayer(&indexedLayer); matrix.begin(); matrix.setBrightness(defaultBrightness); - backgroundLayer.setBrightness(255); + backgroundLayer.setBrightness(defaultBrightness); backgroundLayer.enableColorCorrection(true); } @@ -53,14 +53,11 @@ void showEndScreen(int ticks) showEvolutions(ticks); } -void fadeOutGame(int brightness) +void gameBrightness(int brightness) { - char msg[64]; - sprintf(msg, "Setting game layer brightness to: %d", brightness); - logLine(msg); - brightness = lightPowerMap8bit[brightness]; + logLine("Game Brightness: " + (String)brightness); + //brightness = lightPowerMap8bit[brightness]; backgroundLayer.setBrightness(brightness); - //backgroundLayer.swapBuffers(false); } void showEvolutions(int ticks) @@ -80,6 +77,6 @@ void clearDisplay() indexedLayer.fillScreen(0); indexedLayer.swapBuffers(); backgroundLayer.fillScreen({0, 0, 0}); - backgroundLayer.setBrightness(255); + backgroundLayer.setBrightness(defaultBrightness); backgroundLayer.swapBuffers(false); } diff --git a/src/display.h b/src/display.h index ecb82e32df2666e4092266c0d7a61c5011a53563..7b21029aa5f831ae95b89fee42ea6c9ce65461d7 100644 --- a/src/display.h +++ b/src/display.h @@ -12,7 +12,7 @@ extern int gameEra; void setupDisplay(); void displayLoop(); void showEndScreen(int ticks); -void fadeOutGame(int brightness); +void gameBrightness(int brightness); void showEvolutions(int ticks); void clearDisplay(); diff --git a/src/gameoflife.cpp b/src/gameoflife.cpp index b455102fb49c6724358caea31d180790327a3acc..8860606b70766166182f1af9a0e752ceccb4f752 100644 --- a/src/gameoflife.cpp +++ b/src/gameoflife.cpp @@ -123,21 +123,15 @@ void gameLoop() if (gameOver) { + int brightness = floor(defaultBrightness * (1 - ((float)(millis() - currentMillis) / (float)scoreScreenTimeout))); + gameBrightness(brightness); + if (millis() - currentMillis > scoreScreenTimeout) { resetGame(); } - - if (noEvolutionTicks > noEvolutionTicksLimit) - { - if (gameOver) - { - int brightness = 255 * (1 - ((millis() - currentMillis) / scoreScreenTimeout)); - fadeOutGame(brightness); - } - } } - else + else // not gameOver { if (currentTick % 2) diff --git a/src/gameoflife.h b/src/gameoflife.h index cc7b9fabdb9c2760fd11e22b36fabce3eb298626..ab91666736ff1df1ebaf557ea269cd1d90b9edd7 100644 --- a/src/gameoflife.h +++ b/src/gameoflife.h @@ -11,6 +11,7 @@ extern int arrayCopy[SCREEN_HEIGHT][SCREEN_WIDTH]; extern bool runGame; extern int noEvolutionTicksLimit; +extern const int defaultBrightness; void setupGameOfLife(); void createRandomMatrix(int (&a)[SCREEN_HEIGHT][SCREEN_WIDTH]); diff --git a/src/main.cpp b/src/main.cpp index 1c9f642b20d501cc49a60dd6343148bfad878c9f..659579e1a06e464e3df296be9349c253e039521e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,7 @@ #include "gameoflife.h" int noEvolutionTicksLimit = 100; -int brightnessPercent = 50; +int brightnessPercent = 30; int gameInterval = 50; TickTwo gameTimer(gameLoop, gameInterval);