sketch
// Jasmin Kim
//Section D
var mouseSound;
var mouseeX=250;
var mouseeY=100;
var x;
var y;
function preload() { //preloading sounds
//loading sounds
mouseSound = loadSound("https://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/rat.wav");
}
function setup() {
createCanvas(500, 550);
frameRate(1);
useSound();
}
function soundSetup() { //setup for audio generation
mouseSound.setVolume(0.3);
}
function draw(){
console.log(frameRate);
background(230);
drawCheese();
mouseSound.play();
//plateSlide.play();
if(frameCount >=2 & frameCount <=4){
translate(0,-80);
drawMouse(x,y);
}
if(frameCount > 4 & frameCount <=6){
translate(0,0);
drawMouse(x,y);
translate(100,-50);
drawMouse(x,y);
}
if(frameCount > 6 & frameCount <=8){
translate(0,60);
drawMouse(x,y);
translate(100,-30);
drawMouse(x,y);
translate(-200,-60);
drawMouse(x,y);
}
if(frameCount > 8 & frameCount <=10){
translate(0,120);
drawMouse(x,y);
translate(100,0);
drawMouse(x,y);
translate(-200,-50);
drawMouse(x,y);
}
if(frameCount > 10 & frameCount <=12){
push();
circle(302,342,62);
pop();
translate(0,130);
drawMouse(x,y);
rotate(PI/10);
translate(100,60);
drawMouse(x,y);
rotate(-PI/10);
translate(-200,-30);
drawMouse(x,y);
}
if(frameCount >12 & frameCount <=14){
push();
circle(276,357,110);
pop();
translate(0,180);
drawMouse(x,y);
rotate(PI/10);
translate(100,120);
drawMouse(x,y);
rotate(-PI/10);
translate(-200,0);
drawMouse(x,y);
}
if(frameCount >14 & frameCount <=16){
push();
circle(276,357,110);
circle(193,367,79);
pop();
translate(0,190);
rotate(PI/10);
drawMouse(x,y);
translate(100,130);
drawMouse(x,y);
rotate(-PI/10);
translate(-200,60);
drawMouse(x,y);
}
if(frameCount >16 & frameCount <=18){
push();
circle(276,357,110);
circle(193,367,79);
pop();
translate(0,250);
rotate(PI/10);
drawMouse(x,y);
translate(0,180);
drawMouse(x,y);
rotate(-PI/10);
translate(-200,80);
drawMouse(x,y);
}
if (frameCount>18 & frameCount <20){
fill(255);
circle(249,379,181);
} else if(frameCount >= 20){
fill(255);
circle(249,379,181);
mouseSound.disconnect();
textSize(30);
fill(0);
text("Your cheese is gone.", width/2-100,200);
noLoop();
}
}
function drawCheese(x,y){
fill(255);
noStroke();
circle(249,387,234); //white plate
push();
noFill();
strokeWeight(1);
stroke(49,51,73);
circle(249,387,220); //navy plate
pop();
fill(253,222,85);
noStroke();
triangle(323,334,241,471,167,363); //cheese
fill(255);
circle(200,357,20);
circle(270,346,11);
circle(236,391,11);
circle(189,395,12);
circle(222,436,20);
circle(247,459,11);
circle(277,413,20);
circle(315,349,11);
}
function drawMouse(){
fill(127,84,41); //brown
stroke(0);
strokeWeight(1);
ellipse(mouseeX,mouseeY,98,103); //body
arc(mouseeX, mouseeY+45, 52, 52, 0, PI); //face
push();
//eyes
fill(0);
ellipse(mouseeX-10,mouseeY+52,7,8); //left
ellipse(mouseeX+10,mouseeY+52,7,8); //right
ellipse(mouseeX,mouseeY+66,5,5);
fill(255);
ellipse(mouseeX-10,mouseeY+51,3.7,4.7);
ellipse(mouseeX+10,mouseeY+51,3.7,4.7);
noFill();
stroke(0);
line(mouseeX-30,mouseeY+61,mouseeX-7,mouseeY+65); //left
line(mouseeX-30,mouseeY+69,mouseeX-7,mouseeY+67);
line(mouseeX-23,mouseeY+78,mouseeX-5,mouseeY+69);
line(mouseeX+30,mouseeY+61,mouseeX+8,mouseeY+65); //right
line(mouseeX+7,mouseeY+67,mouseeX+30,mouseeY+69);
line(mouseeX+6,mouseeY+69,mouseeX+24,mouseeY+78);
pop();
stroke(127,84,41);
strokeWeight(4);
line(mouseeX,mouseeY-50,mouseeX-23,mouseeY-69); //tail
noStroke();
push();
fill(0);
arc(mouseeX+24, mouseeY+30, 37, 39, -PI,TWO_PI); //right ear black
arc(mouseeX-24, mouseeY+30, 37, 39,PI, TWO_PI); //left ear black
pop();
ellipse(mouseeX+25, mouseeY+31, 37, 39); //right ear brown
ellipse(mouseeX-25, mouseeY+31, 37, 39); //left ear brown
push();
fill(247,168,170); //pink
ellipse(mouseeX+25,mouseeY+30,31,31);
ellipse(mouseeX-25,mouseeY+30,31,31);
pop();
ellipse(mouseeX+22,mouseeY+34,31,28); //left ear cover
ellipse(mouseeX-22,mouseeY+34,32,28); //right ear cover
}
For this project, I tried to show a short animation of mice eating all of my cheese. As frameCount increases, mouse appears and the mouse sound increases. I also tried to show how the cheese gradually disappears throughout the frame.