class Leds { //<>// color _baseColor = color(0, 0, 0); color _BallColor = color(0, 0, 255); color _PadColor = color(0, 255, 255); color _winningColor = color(0, 255, 0); color _losingColor = color(255, 0, 0); int _activeLed = 0; float _ledRadius = 0; int _ledCount, _prevLedsId, _gridX, _gridY; Led[][] _leds; Leds(int gridX, int gridY) { _gridX = gridX; _gridY = gridY; _ledCount = gridX * gridY; _leds = new Led[gridX][gridY]; initGrid(); } void setBaseColor(color col) { _baseColor = col; } float getLedRadius() { return _ledRadius; } Led[][] getAllLeds() { return _leds; } int getLedAmount() { return _gridX* _gridY; } int getLedAmountX() { return _gridX* _gridY; } int getLedAmountY() { return _gridX* _gridY; } void initGrid() { _ledRadius = height/_gridY; //TODO check smallest height or width for (int y = 0; y < _gridY; y++) { for (int x = 0; x< _gridX; x++) { int id = calculateID(x, y); _leds[x][y] = new Led(width - (x*_ledRadius), height-(y*_ledRadius), _ledRadius/2, id); } } } //void initGrid() { // _ledRadius = width/(gridBox*amountX); // float tempX = _ledRadius/2; // float tempY = _ledRadius/2; // float tempMoveX = 0; // float tempMoveY = 0; // int result = 0; // for (int aX=0; aX player2Points) { _leds[LedGridWidth-1][i].setColor(_winningColor); _leds[LedGridWidth-1][i].displayLed(); } else { _leds[LedGridWidth-1][i].setColor(_losingColor); _leds[LedGridWidth-1][i].displayLed(); } } //player2 points for (int i = 0; i < player2Points; i++) { if ( player1Points < player2Points) { _leds[0][i].setColor(_winningColor); _leds[0][i].displayLed(); } else { _leds[0][i].setColor(_losingColor); _leds[0][i].displayLed(); } } } void leftScored() { for (int y = 0; y < _gridY; y++) { for (int x = 0; x< _gridX; x++) { _leds[x][y].setColor(_baseColor); _leds[x][y].displayLed(); } } for(int scored = 0; scored < LedGridHeight; scored++){ _leds[LedGridWidth-1][scored].setColor(_winningColor); _leds[LedGridWidth-1][scored].displayLed(); } } void rightScored() { for (int y = 0; y < _gridY; y++) { for (int x = 0; x< _gridX; x++) { _leds[x][y].setColor(_baseColor); _leds[x][y].displayLed(); } } for(int scored = 0; scored < LedGridHeight; scored++){ _leds[0][scored].setColor(_winningColor); _leds[0][scored].displayLed(); } } color findColorByPixel(int x, int y) { color c = get(x, y); //println("r: " + red(c) + "g: " +green(c) + "b: " + blue(c)); return c; } int calculateID(int x, int y) { if (y % 2 != 0) { int reverseX =(_gridX-1) -x; int id = (y * _gridX) + reverseX; return id; } else { int id = (y*_gridX)+x; return id; } } }