La variable mouseX stocke les coordonnées en X de la souris, mouseY celle en Y.
function setup() { createCanvas(480, 120); fill(0, 102); noStroke(); } function draw() { ellipse(mouseX, mouseY, 9, 9); }
Les variables pmouseX et pmouseY stockent la position de la souris à l’image précédente.
function setup() { createCanvas(480, 120); strokeWeight(4); stroke(0, 102); } function draw() { line(mouseX, mouseY, pmouseX, pmouseY); }
La variable mouseIsPressed de la souris est utilisé avec l’instruction if pour déterminer quand une ligne de code sera exécuté et quand elle ne l’est pas.
function setup(){ createCanvas(500,500); } function draw(){ for(var i=0;i<500 ;i+=5){ rect(i, 0, 3, 500); } if (mouseIsPressed) { // ou bien (mouseIsPressed == true) for( var i=500 ; i>0 ; i-=4) { //ellipse(i,0, i,i); ellipse(width/2,height/2, i,i); } } }
if & else : donnent deux possibilités
function setup(){ createCanvas(500,500); } function draw(){ for(var i=0;i<500 ;i+=5){ fill(255); rect(i, 0, 3, 500); } for( var i=500 ; i>0 ; i-=4) { if (mouseIsPressed == true) { ellipse(width/2,height/2, i,i); }else{ ellipse(i,0, i,i); } } }
Utiliser plusieurs bouton de la souris : click droit & click gauche
function setup(){ createCanvas(500,500); } function draw(){ for(var i=0;i<500 ;i+=5){ rect(i, 0, 3, 500); } if (mouseIsPressed) { if (mouseButton == RIGHT) { for( var i=500 ; i>0 ; i-=4) { ellipse(width/2,height/2, i,i); } }else{ for( var i=500 ; i>0 ; i-=4) { ellipse(i,500, i,i); } } } }
p5.js garde la trace du moment où une touche sur un clavier est enfoncée, ainsi la mémoire de la dernière touche enfoncée.
function setup() { createCanvas(600, 600); } function draw() { background(255); for (var x=0; x <= width; x+=40) { for (var y=0; y <= height; y+=80) { ellipse(x, y, 40, 40); if (keyIsPressed) { rect(x,y+20,40,40); } } } }
Dans cet exemple 3 touches sont utilisées, h, j & k. L’opérateur || (ou) permet d’utiliser soit les bas de casse soit les capitales.
function setup() { createCanvas(400, 400); } function draw() { var l = random(0,200); noStroke(); fill(random(100), random(150, 220), random(150, 220), random(100, 150)); if (keyIsPressed) { if ((key == 'h') || (key == 'H')) { ellipse(random(0, 400), random(0,400), l, l); } if ((key == 'g') || (key == 'G')) { rect(random(0, 400), random(0, 400),l, l); } if ((key == 'j') || (key == 'J')) { triangle(random(0,400), random(0,400), random(0,400), random(0,400), random(0,400), random(0,400)); } } }
Pour déplacer un élément au clavier avec les flèches directionnelles utiliser UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW.
var x = 400/2-25; var y = 400/2-25; function setup() { createCanvas(400, 400); } function draw() { background(200); if (keyIsPressed) { if (keyCode == LEFT_ARROW) { x--; }if (keyCode == RIGHT_ARROW) { x++; }if (keyCode == DOWN_ARROW) { y++; } if (keyCode == UP_ARROW) { y--; } } rect(x, y, 50, 50); }
Pour les écrans tactiles p5.js propose plusieurs variables qui fonctionnent comme celles de la souris.
function setup() { createCanvas(800, 600); } function draw() { background(200); line(20, 20, width-20, height-20); if (touchIsDown) { line(width-20, 20, 20, height-20); } }
De même touchX & touchY existent
function setup() { createCanvas(800, 600); fill(0, 102); noStroke(); } function draw() { ellipse(touchX, touchY, 30, 30); }