Add display of two colors

pull/14/head
Dennis Bücker 1 year ago
parent d73e207922
commit 84c38fda4c
  1. 2
      src/EnterColorSequence.cpp
  2. 56
      src/SimonDisplay.cpp
  3. 2
      src/SimonDisplay.h

@ -161,6 +161,8 @@ void EnterColorSequence::update(SimonSays &simonSays)
simonSays.simonDisplay.setDisplayMode(0);
break;
}
simonSays.simonDisplay.setNumberColors(numberOfUniqueColors);
simonSays.simonDisplay.setColorsToDisplay(arrayOfUniqueColors);
simonSays.simonDisplay.setActiveColor(inputActiveColor);
}
else

@ -58,6 +58,7 @@ void SimonDisplay::update()
void SimonDisplay::setDisplayMode(unsigned int _mode)
{
//Serial.println("DisplayModeChange");
int numberOfModes = sizeof(modeList)/sizeof(modeList[0]);
currentMode = _mode % numberOfModes;
}
@ -68,7 +69,11 @@ void SimonDisplay::setColorsToDisplay(int _colorsToDisplay[10])
{
colorsToDisplay[i] = _colorsToDisplay[i];
}
}
void SimonDisplay::setNumberColors(int _numberOfColors)
{
numberOfColors = _numberOfColors;
}
void SimonDisplay::setActiveColor(int _activeColor)
@ -84,6 +89,16 @@ void SimonDisplay::displayOneColor(CRGB _color)
}
}
void SimonDisplay::drawPixel(int i,CRGB _color)
{
M5.dis.drawpix(i, _color);
}
void SimonDisplay::clearDisplay()
{
M5.dis.clear();
}
void SimonDisplay::displayOneColorById(int colorId)
{
displayOneColor(baseColors[colorId]);
@ -103,8 +118,43 @@ void OneColorSelection::update(SimonDisplay &simonDisplay)
void TwoColorSelection::update(SimonDisplay &simonDisplay)
{
// Only test
simonDisplay.displayOneColorById(simonDisplay.activeColor);
// Serial.println("TwoColorSelectionUpdate");
//simonDisplay.displayOneColorById(simonDisplay.activeColor);
//Serial.println("TwoColorSelectionUpdate");
simonDisplay.clearDisplay(); // clear display first
for (int i = 0; i <= 25; i++)
{
if (((i-3) % 5 == 0) || ((i - 4) % 5 == 0))
{
if (simonDisplay.colorsToDisplay[0] == simonDisplay.activeColor)
{
// Display highlight
simonDisplay.drawPixel(i, simonDisplay.highlightColors[simonDisplay.colorsToDisplay[1]]);
}
else {
// Display normal Color
simonDisplay.drawPixel(i, simonDisplay.baseColors[simonDisplay.colorsToDisplay[1]]);
}
}
if (((i - 0) % 5 == 0) || ((i - 1) % 5 == 0))
{
if (simonDisplay.colorsToDisplay[1] == simonDisplay.activeColor)
{
// Display highlight
simonDisplay.drawPixel(i, simonDisplay.highlightColors[simonDisplay.colorsToDisplay[0]]);
}
else
{
// Display normal Color
simonDisplay.drawPixel(i, simonDisplay.baseColors[simonDisplay.colorsToDisplay[0]]);
}
}
}
//simonDisplay.displayOneColorById(simonDisplay.activeColor);
//M5.dis.drawpix(14,CRGB::Red);
}
void ThreeColorSelection::update(SimonDisplay &simonDisplay)

@ -72,6 +72,8 @@ class SimonDisplay {
void setColors();
void displayOneColor(CRGB color);
void displayOneColorById(int colorId);
void drawPixel(int i, CRGB color);
void clearDisplay();
private :

Loading…
Cancel
Save