xxxxxxxxxx
float size = 10;
ArrayList<Coloumn> Matrix = new ArrayList<Coloumn>();
color matrixColour;
bool goingDown = true;
void setup(){
fullScreen();
matrixColour = color(0, 255, 0);
}
void draw(){
background(0);
Matrix.add(new Column());
for(Coloumn thisCol:Matrix){
thisCol.Render();
if (thisCol.yPos >= height || thisCol.yPos <= 0){
Matrix.remove(thisCol);
}
}
}
void keyPressed () {
if (key == ' ') {
matrixColour = color(random(255), random(255), random(255));
}else if (key == 's'){
goingDown = !goingDown;
}else if (key == 'a'){
size -= 2;
}else if (key == 'd'){
size += 2;
}
}
class Column{
float xPos, yPos;
int length;
Column(){
xPos = random(width);
yPos = random(size*round(height/(size)));
}
void Render(){
textMode(CENTER);
fill(matrixColour);
textSize(size);
if (goingDown) {
for(int i = 0; i<length; i += size){
text(round(random(0, 9)).toString(), xPos, yPos+i);
}
if(yPos + length < height){
length += size;
}else{
yPos += size;
length -= size;
}
}else{
for(int i = 0; i<length; i += size){
text(round(random(0, 9)).toString(), xPos, yPos-i);
}
if (yPos - length > 0){
length += size
}else{
yPos -= size;
length -= size;
}
}
}
}