soundstoryDownload
var cloudX = 0;
var cloudY = 50;
var cloudDx = 5;
var carX = 400;
var carY = 350;
var carDx = 15;
var manX = 200;
var manY = 350;
var manDx = 10;
var cloudLaughing;
var rainSound;
var manGrumble;
var carSound;
function preload() {
cloudLaughing = loadSound("https://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/laugh.wav");
rainSound = loadSound("https://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/rain-1.wav");
carSound = loadSound("https://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/car.wav");
manGrumble = loadSound("https://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/mad.wav");
}
function setup() {
// you can change the next 2 lines:
createCanvas(400, 400);
frameRate(1);
useSound();
}
function soundSetup(){
cloudLaughing.setVolume(0.5);
carSound.setVolume(0.5);
manGrumble.setVolume(0.4);
}
function cloud(){
noStroke();
fill(255);
//cloud 1
push();
scale(1.5);
circle(cloudX, cloudY, 60);
circle(cloudX - 30, cloudY + 10, 40);
circle(cloudX + 30, cloudY +10, 40);
//face
stroke(0);
line(cloudX-15, cloudY - 15, cloudX-5, cloudY - 5);
line (cloudX - 15, cloudY - 5, cloudX -5, cloudY - 15);
line(cloudX+15, cloudY - 15, cloudX+5, cloudY - 5);
line (cloudX + 15, cloudY - 5, cloudX + 5, cloudY - 15);
fill(0);
arc(cloudX, cloudY, 30, 30, 0, PI); //smile
pop();
cloudX += cloudDx
print(frameCount);
if (frameCount == 25){
cloudDx = 0
}
}
function rain(){
for (var i = 0; i < 12; i++){
var x = random(125, 275);
var y = random(100, height);
fill(93, 146, 245);
noStroke();
circle(x - 15, y+3, 5);
triangle(x - 17.5, y +3, x - 12.5, y+ 3, x - 15, y - 5)
}
}
function car(){
fill(255, 0, 0);
ellipse(carX, carY, 100, 70);
ellipse(carX, carY + 15, 150, 40);
fill(60, 140, 255);
ellipse(carX - 30, carY - 10, 40, 20)
fill(0)
//tires
circle(carX - 35, carY + 30, 30);
circle(carX + 35, carY + 30, 30);
carX -= carDx
if (frameCount == 14){
carDx = 0;
}
}
function person(){
fill(0);
stroke(0);
strokeWeight(1);
circle(manX, manY, 15);
strokeWeight(5);
line(manX, manY, manX, manY + 30);
line(manX, manY + 30, manX -15, manY + 40);
line(manX, manY + 30, manX + 15, manY + 40);
line(manX, manY + 20, manX -15, manY+ 5);
line(manX, manY + 20, manX + 15, manY+ 5);
if (frameCount >= 27){
manX -= manDx
}
}
function draw() {
background(195, 200, 226);
fill(190);
stroke(50);
rect(0, 350, width, height);
cloud();
car();
if (frameCount <= 5){
text('Evil Cloud', 190, 200);
}
if (frameCount >= 15){
person();
}
strokeWeight(1);
//sounds
if (frameCount > 25 & frameCount <= 49) {
rain();
rainSound.play();
}
if (frameCount >= 27 & frameCount < 49){
manGrumble.play();
}
if (frameCount < 14){
carSound.play();
}
if (frameCount == 25) {
cloudLaughing.play();
}
if (frameCount == 50){
rainSound.stop();
manGrumble.stop();
}
if (frameCount == 14){
carSound.stop();
}
if (frameCount == 28){
cloudLaughing.stop();
}
}
My story is of an evil cloud. A car drives by and parks and the man gets out, seeing this the cloud laughs and the rain starts to fall. The annoyed man grumbles and walks away from the rain.