I'm making a game of snake on the adafruit Neopixel shield and have run in to a problem. How do you fill out an array (in this case a 5*8 array) with values once the class has been called. This is my code so far
H file
#include <Arduino.h>
#include <Adafruit_NeoMatrix.h>
#include <streaming.h>
class Snake : public Adafruit_NeoMatrix
{
public:
Snake();
void drawSnake();
private:
int snakeBoard[5][8];
};
CPP file
#include "Snake.h"
Snake::Snake() : Adafruit_NeoMatrix(8, 5, D6,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_GRB + NEO_KHZ800)
{
begin(); // start the matrix
show();
int snakeBoard[5][8] = {{1,1,0,0,0,0,0,0},
{0,0,1,0,0,0,0,0},
{0,0,1,0,1,1,-1,0},
{0,0,1,1,1,0,0,0},
{0,0,0,0,0,0,0,0}};
}
void Snake::drawSnake()
{
for(int y = 0; y < 5; y ++)
{
for(int x = 0; x < 8; x ++)
{
Serial << "X: " << x << " Y: " << y << " Value" << snakeBoard[x][y] << endl;
delay(100);
}
}
drawPixel(5,5,Color(0,0,255));
show();
}
When I run the program random garbage is printed in the serial monitor.
=
snakeBoard
which is deleted automatically once you leave the constructor. This array covers up the array declared in the class definition