Nous allons maintenant nous intéresser à l'interaction avec l'utilisateur. Pour l'instant nous allons nous contenter de la souris et du clavier. Commençons par la souris
p5js propose 4 fonctions qui devront être complétées par le programmeur :
Ces 4 fonctions ne prennent aucun paramètre et ne retournent aucune valeur.
Saisissez, analysez et testez ce code
var r;
function setup(){
createCanvas(400,400);
noStroke();
fill(0);
r=10;
}
function draw(){
background(240);
ellipse(200,200,2*r,2*r);
}
function mousePressed(){
if (r<200){
r=r+5;
}
}
Attention : pour pouvoir utiliser les 4 fonctions que nous venons de voir, il faut que la fonction "draw" soit présente dans le programme (même si elle est vide)
Saisissez, analysez et testez ce code
var r;
function setup(){
createCanvas(400,400);
noStroke();
fill(0);
r=10;
}
function draw(){
background(240);
ellipse(200,200,2*r,2*r);
}
function mousePressed(){
r=r+100;
}
function mouseReleased(){
r=r-100;
}
Créez un programme permettant d'afficher un carré vert au centre de la fenêtre. En cas d'appui sur un bouton de la souris le carré devient rouge. Ce même carré redevient vert dès que le bouton de la souris est relâché.
Il est possible de connaitre les coordonnées du curseur de la souris grâce aux variables proposées par Processing : "mouseX" et "mouseY"
Saisissez, analysez et testez ce code
function setup(){
createCanvas(400,400);
noStroke();
fill(0);
}
function draw(){
background(240);
ellipse(mouseX,mouseY,30,30);
}
Créez un programme qui permettra d'afficher un nouveau carré à chaque clic de souris (sans effacer les carrés déjà présents). Le centre du carré devra se trouver au niveau du pointeur de la souris au moment du clic. La couleur du carré devra être aléatoire.
Créez un programme qui permettra d'obtenir ceci :
Cliquez uniquement dans le rectangle rouge
Saisissez, analysez et testez ce code
var val;
function setup(){
createCanvas(200,200);
background(240);
val=0;
}
function draw() {
fill(val);
rect(75, 75, 50, 50);
}
function mouseMoved()
{
val = val + 5;
if (val > 255) {
val = 0;
}
}
Saisissez, analysez et testez ce code
var val;
function setup(){
createCanvas(200,200);
background(240);
val=0;
}
function draw() {
fill(val);
rect(75, 75, 50, 50);
}
function mouseDragged()
{
val = val + 5;
if (val > 255) {
val = 0;
}
}
Si "mouseX" et "mouseY" vous donnent la position de la souris à l'instant t, "pmouseX" et "pmouseY" vous permettent d'avoir les coordonnées de la souris à l'instant t-dt, avec dt le temps qui s'est écoulé entre 2 images.
Saisissez, analysez et testez ce code
function setup(){
createCanvas(300,300);
background(240);
}
function draw() {
}
function mouseDragged()
{
line(pmouseX,pmouseY,mouseX,mouseY);
}