sketch
The pupils follows your cursor!
function setup() {
createCanvas(400, 400);
background(220);
text("p5.js vers 0.9.0 test.", 10, 15);
}
var r = 220;
var g = 220;
var b = 220;
var faceW = 150;
var faceH = 150;
var randomR = 221;
var randomG = 161;
var randomB = 119;
var eyeSize = 5;
var eyeGap = 50
var noseW = 30;
var noseH = 30;
var mouthType = 1;
var mouthSize = 50;
var bodyW = 200;
function draw() {
background(r, g, b);
//body
fill(255 - r, 255 - g, 255 - b);
ellipse(width / 2, height, bodyW, height);
//face
noStroke();
fill(randomR, randomG, randomB);
ellipse(width / 2, height / 2, faceW, faceH);
//eye
fill(255);
ellipse((width / 2) - (eyeGap / 2), height / 2, eyeSize * 2);
ellipse((width / 2) + (eyeGap / 2), height / 2, eyeSize * 2);
fill(0);
var y;
if (mouseY >= (height / 2) + (eyeSize / 2)) { //if pupil goes past top of eye
y = min(mouseY, (height / 2) + (eyeSize / 2));
} else if (mouseY <= (height / 2) - eyeSize / 2) { //if pupil goes past bottom of eye
y = max(mouseY, (height / 2) - (eyeSize / 2));
} else { //if pupil is in eye gap
y = height / 2;
}
var xL;
var xR;
if (mouseX >= (width / 2) + (eyeGap / 2)) { //if pupil goes past right eye
xR = min(mouseX, (width / 2) + (eyeGap / 2) + (eyeSize / 2));
xL = min(mouseX, (width / 2) - (eyeGap / 2) + (eyeSize / 2));
} else if (mouseX <= (width / 2) - (eyeGap / 2)) { //if pupil goes past left eye
xL = max(mouseX, (width / 2) - (eyeGap / 2) - (eyeSize / 2));
xR = max(mouseX, (width / 2) + (eyeGap / 2) - (eyeSize / 2));
} else { //if pupil is in eye gap
xL = (width / 2) - (eyeGap / 2);
xR = (width / 2) + (eyeGap / 2);
}
ellipse(xL, y, eyeSize); //leftEye
ellipse(xR, y, eyeSize); //rightEye
//nose
fill(randomR - 20, randomG - 20, randomB - 20);
ellipse(width / 2, (height / 2) + (faceH / 5), noseW, noseH);
fill(randomR, randomG, randomB);
ellipse(width / 2, (height / 2) + (faceH / 5) - 10, noseW, noseH);
//mouth
fill(0);
if (mouthType <= 2 & mouthType >= 1) {
rect((width / 2) - (mouthSize / 2), (height / 2) + (faceH / 5) * 2, mouthSize, 3);
} else {
circle(width / 2, (height / 2) + (faceH / 5) * 2, mouthSize * 0.25);
}
}
function mousePressed() {
bodyW = random(width / 1.5, width / 3);
faceW = random(width / 4, width / 2);
faceH = random(height / 4, height / 2);
randomR = random(150, 200);
randomG = random(110, 130);
randomB = random(70, 90);
eyeGap = random(faceW / 2, faceW / 5);
eyeSize = random(5, 20);
noseW = random(20, 40);
noseH = random(30, 50);
mouthType = random(0, 2);
mouthSize = random(faceW / 2, faceW / 10);
r = random(255);
g = random(255);
b = random(255);
}