20



/**
*array objects.
*kyou mo exsample kara desu.benkyoubenkyou.

*/

int unit = 40;
int num;
Module[] mods;

void setup(){
size(400,400);
background(176);
noStroke();

num = width/unit * width/unit;
mods = new Module[num];

for(int i =0; i < height/unit; i++){
for(int j =0; j < height/unit; j++){
int index = (i * height/unit)+j;
mods[index] = new Module(j*unit, i*unit, unit/2, unit/2, random(0.05,0.8));
}
}
}

void draw(){
for(int i = 0; i < num; i ++){
mods[i].update();
mods[i].draw();
}
}


class Module{
float mx, my;
int size = unit;
float x,y = 0;
int xdir = 1;
int ydir =1;
float speed;

Module(float imx, float imy, float ix, float iy, float ispeed){
mx = imy;
my = imx;
x = int(ix);
y = int(iy);
speed = ispeed;
}

void update(){
x = x + (speed * xdir);
if( x >= size || x <= 0){
xdir *= -1;
x = x + (1 * xdir);
y = y + (1 * ydir);
}
if(y >= size || y <= 0){
ydir *= -1;
y = y +(1 * ydir);
}
}

void draw(){
stroke(second()*4,second()*2,second()*3,30);
point(mx + x -1, my +y-1);
}
}

コメント