xxxxxxxxxx
84
// définir les directions possibles
var NORTH = 0;
var NORTHEAST = 1;
var EAST = 2;
var SOUTHEAST = 3;
var SOUTH = 4;
var SOUTHWEST = 5;
var WEST = 6;
var NORTHWEST = 7;
var direction;
// définir l'espace entre les points
var stepSize = 1;
// définir le diametre des points
var diameter = 1;
// définir la vitesse
var speed = 100;
var posX;
var posY;
function setup() {
createCanvas(600, 600);
noStroke();
fill(0, 255,0);
background(255);
// définir la position de départ
posX = width / 2;
posY = height / 2;
}
function draw() {
background(random(255));
for (var i = 0; i <= speed ; i++) {
// choisir aléatoirement la direction
direction = int(random(0, 8));
// si la direction est NORTH alors le point remonte (on enlève la taille de la distance à la position actuelle pour définir la nouvelle position )
if (direction == NORTH) {
posY -= stepSize;
} else if (direction == NORTHEAST) {
posX += stepSize;
posY -= stepSize;
} else if (direction == EAST) {
posX += stepSize;
} else if (direction == SOUTHEAST) {
posX += stepSize;
posY += stepSize;
} else if (direction == SOUTH) {
posY += stepSize;
} else if (direction == SOUTHWEST) {
posX -= stepSize;
posY += stepSize;
} else if (direction == WEST) {
posX -= stepSize;
} else if (direction == NORTHWEST) {
posX -= stepSize;
posY -= stepSize;
}
// quand l'agent idiot sort de la page, il revient de l'autre côté
if (posX > width) posX = 0;
if (posX < 0) posX = width;
if (posY < 0) posY = height;
if (posY > height) posY = 0;
// on dessine l'agent idiot
ellipse(posX + stepSize / 2, posY + stepSize / 2, diameter, diameter);
}
}
// fonction qui s'exécute quand une touche est relâchée
function keyReleased() {
// appuyer sur "s" permet d'enregistrer l'image
if (key == 's' || key == 'S') {
saveCanvas(year()+month()+day()+'-'+hour()+ minute() + second() +'_grille'+ '.jpg');
}
// appuyer sur effacer permet d'effacer tout
if (keyCode == DELETE || keyCode == BACKSPACE){
background(255);
}
}