I have this code to generate a grid of random tiles, using class and object. I want to whenever user press the mouse, canvas will automatically refresh and generate a new art work. And the mousepress function I've tried has not working yet. Thank you for your help!
void setup(){
size(400,400);
for (int i=0; i<8; i++){
for (int j=0; j<8; j++){
blk[i][j]= new Block(i*50,j*50);
}
}
}
void draw(){
background(255);
for (int i=0; i<8; i++){
for (int j=0; j<8; j++){
float num = random(0,5);
if (int(num)<3){
blk[i][j].tile();
blk[i][j].line1();
}
else {
blk[i][j].tile();
blk[i][j].line2();
}
}
}
noLoop();
}
void mousePressed(){
}
// Class
class Block{
float x,y;
Block(float _x, float _y){
x=_x;
y=_y;
}
void tile(){
stroke(0);
strokeWeight(2);
square(x,y,50);
}
void line1(){
stroke(0);
strokeWeight(2);
line(x,y,x+50,y+50);
}
void line2(){
stroke(0);
strokeWeight(2);
line(x+50,y,x,y+50);
}
}
When the mouse is pressed tell it to redraw():
void mousePressed() {
redraw();
}
I also had to add this line of code at the top of the code that you posted:
Block[][] blk = new Block[400][400];