//Ici, je crée un tableau avec des couleurs, donc je vais ici définir que je veux créer un nouveau tableau, son nom c’est color, et je vais directement aller stocker une palette de couleurs dans ce tableau
color[] colors =
{
//j’ai choisi donc 6 couleurs, qui marchent assez bien ensemble, meme s’ils se ressemblent assez, j’ai essayé de rester dans le réaliste en tenant compte des couleurs que peut porter un ours, sans rentrer dans l’extravagant (rose,mauve,rouge,etc)
//afin donc, de trouver ces couleurs, je suis allée faire un détour dans un site “color.adobe.com” et de la j’ai crée ma palette en ayant tout d’abord le RGB de chaque couleurs, puis en les transitionnant en mode “hexadécimale”
#654321,
#A0522D,
#000000,
#8B4513,
#64190D,
#00FF00
};
//DĂ©termine les positions des 6 boutons de cercle
int circleX, circleY;// Position du bouton de “circle”
int circle1X, circle1Y;// Position du bouton de “circle1”
int circle2X, circle2Y;// Position du bouton de “circle2”
int circle3X, circle3Y;//Position du bouton de “circle3”
int circle4X, circle4Y;// Position du bouton de “circle4”
int circle5X, circle5Y;// Position du bouton de “circle5”
//Détermine les diamètres des 6 cercles
int circleSize = 80;// Diamètre de “circle”
int circle1Size = 80;// Diamètre de “circle1”
int circle2Size = 80;// Diamètre de “circle2”
int circle3Size = 80;// Diamètre de “circle3”
int circle4Size = 80;// Diamètre de “circle4”
int circle5Size = 80;// Diamètre de “circle5”
//Ici, j’ai crée un nouveau tableau (array#2) rassemblant les “highlight” des couleurs, ceux ci permettent d’avoir une sorte d’animation qu’on retrouve assez souvent dans des jeux en ligne.
//cette animation n’est pas obligatoire, et meme si je l’enlève ça n’affecteras pas tout mon sketch, je précise que c’est juste un extra de mon sketch
color [] Highlight =
{#44312A, #7F4202, 0, #552F01, #4C1211, #01B000};
//00000000000000000000000000000000000000000000000000000000000000000000000000000000
color currentColor;
//j’ai crée ici des variables de type booléenne,chacune de ces variables, ayant la meme fonction, portent le meme nom:circleOver,circle1Over,circle2Over,etc, celles-ci renvoient toutes false.
boolean circleOver = false;
boolean circle1Over = false;
boolean circle2Over = false;
boolean circle3Over = false;
boolean circle4Over = false;
boolean circle5Over = false;
//variable qui me serviras plus tard, et que j’expliquerais lorsque l’on sera arrivé au code ou j’ai utilisé cette variable
//000000000000000000000000000000000000000000000000000000000000000000000000000000000
int x = 0;
void setup (){
//détermine les différentes positions des cercles en x et y, j’ai mis sur tout les “circles”, en position x “60”, car comme vous pouvez le voir dans le sketch, ils sont alignés verticalement et horizontalement, mais la position y change pour éviter une superposition.
circleX = 60;
circleY = 50;
circle1X = 60;
circle1Y = 150;
circle2X = 60;
circle2Y = 250;
circle3X = 60;
circle3Y = 350;
circle4X = 60;
circle4Y = 450;
circle5X = 60;
circle5Y = 550;
//Ce mode permet que tous les “circles” soient bien au centre du cadre en haut,à gauche, si je le change en CORNER je devrais remodifier le reste du sketch en m’adaptant à la position des “circles”, sauf que si je met CORNER les "circles"entraveront mon arbre
ellipseMode(CENTER);
//taille du sketch
size (1400,800);
//fond du sketch, déterminant le ciel.
background (0,200,255);
//couleur du rectangle
fill (0,255,0);
//primitive rectangle, déterminant le sol, l’herbe.
rect (0,500,1500,400);
//stroke afin de limiter et d’éviter que la personne qui colorie,déborde. permet de savoir ou s’arreter quant à l’éxterieur, pour ce qui est de l’intérieur, je n’ai pas trouvé comment faire en sorte que certaines stroke s’en aillent, comme cette fonction est active
stroke(5);
}
void draw () {
//Le dessin du coloriage
//corps de l’ourson
noFill();
ellipse (700,550,400,400);
// intérieur du corps de l’ourson
ellipse (700,550, 350,350);
//deuxième patte de l’ourson
ellipse (800,750,150,150);
//première patte de l’ourson
ellipse (600,750,150,150);
//intérieur pattes de l’ourson
ellipse (800,750,100,100);
ellipse (600,750,100,100);
//tete de l’ourson
ellipse (700,300,350,300);
//oeil de l’ourson
ellipse (650,280,25,30);
ellipse (750,280,25,30);
//intérieur de l’oeil de l’ourson
ellipse (650,280,15,20);
ellipse (750,280,15,20);
//intérieur #2 des yeux de l’ourson
ellipse (650,280,10,15);
ellipse (750,280,10,15);
//intérieur #3 des yeux de l’ourson
ellipse (648,275,2,5);
ellipse (748,275,2,5);
//Nez de l’ourson
ellipse (700,360,160,140);
//intérieur nez de l’ourson
ellipse (700,345,85,90);
//barre verticale du nez de l’ourson
rect (698,345,5,60);
//barre arc du nez de l’ourson
arc(701,400, 70, 50,0, PI);
//oreilles de l’ourson
ellipse (600,160,125,125);
ellipse (800,160,125,125);
//intérieur des oreilles de l’ourson
ellipse (600,160,100,100);
ellipse (800,160,100,100);
//tronc de l’arbre
rect (100,150,200,500);
//feuilles de l’arbre
ellipse (200,100,400,400);
//000000000000000000000000000000000000000000000000
update();
//mon array
int k = 0;
fill(colors[k]);
k++;
}
//0000000000000000000000000
void update() {
//ici je crée des variables, disant que chaque overcircle, composés des données entre parenthèses, doit se regenérer, afin de s’afficher dans le sketch
circleOver = overcircle(circleX, circleY, circleSize, #654321, #44312A) ;
circle1Over = overcircle(circle1X, circle1Y, circle1Size, #A0522D, #7F4202) ;
circle2Over = overcircle(circle2X, circle2Y, circle2Size, #000000, 0) ;
circle3Over = overcircle(circle3X, circle3Y, circle3Size, #8B4513, #552F01) ;
circle4Over = overcircle(circle4X, circle4Y, circle4Size, #64190D, #4C1211) ;
circle5Over = overcircle(circle5X, circle5Y, circle5Size, #00FF00, #01B000) ;
}
boolean overcircle(int x, int y, int diameter, color hi, color lo) {
// fill(0) ;
//déclaration variable float qui
float disX = x - mouseX;
float disY = y - mouseY;
if (sqrt(sq(disX) + sq(disY)) < diameter/2 ) {
fill(hi) ;
ellipse(x, y, diameter, diameter);
currentColor = hi ;
return true;
} else {
fill(lo) ;
ellipse(x, y, diameter, diameter);
return false;
}
}
void mouseDragged() {
fill(currentColor) ;
ellipse(mouseX, mouseY, 30, 30);
}
void mousePressed() {
if ((mouseX>width-100) && (mouseX<width) && (mouseY>height-100) && (mouseY<height)){
saveFrame();
}
}