xxxxxxxxxx
811
let player;
let player2;
let player3;
let cars = []
let carsNum = 1;
let sceneNum = 1;
//apartmentbarriers
//backwalls
let bw1x = 0;
let bw1y = 285;
let bw1w = 110;
let bw1h = 15;
let bw2x = 205;
let bw2y = 285;
let bw2w = 110;
let bw2h = 15;
//sidewalls
let swx = 310;
let swy = 0;
let sww= 15;
let swh= 300;
//floorlamp
let flx = 70
let fly = 25
let flc = 35
//sidetables
let st1x = 20
let st1y = 100
let st1c = 35
let st2x = 20
let st2y = 225
let st2c = 35
//desk
let dx = 100
let dy = 5
let dw = 100
let dh = 55
let dr = 2
//tvstand
let tvx = 270
let tvy = 105
let tvw = 55
let tvh = 100
let tvc = 2
//fridge
let fx = 325
let fy = 60
let fw = 35
let fh = 65
let fc = 5
//kitchen counter
let kcx = 325
let kcy = 0
let kcw = 205
let kch = 55
//street barriers
//trash1
let t1x = 375
let t1y = 15
let tc = 20
//trash2
let t2x = 40
let t2y = 60
//trash3
let t3x = 100
let t3y = 360
//trash4
let t4x = 275
let t4y = 380
//vespas
//Vespa1
let vb1x = 300
let vb1y = 305
let vb1w = 45
let vb1h = 20
let vb1c = 20
let vf1x = 325
let vf1y = 310
let vf1w = 25
let vf1h = 10
let vf1c = 20
//Vespa2
let vb2x = 530
let vb2y = 80
let vb2w = 45
let vb2h = 20
let vb2c = 20
let vf2x = 555
let vf2y = 85
let vf2w = 25
let vf2h = 10
let vf2c = 20
//foodtruck
//frontoftruck
let ftx = 150
let fty= 65
let ftw= 45
let fth = 45
let ftc = 2
//body
let btx = 75
let bty = 60
let btw = 100
let bth = 55
let btc = 2
//umbrella
let ux = 75
let uy = 45
let uw = 75
let uh = 15
//people
//greyrect
let grx = 490
let gry = 340
let grw = 55
let grh = 55
//group1
let p1x = 535
let p1y = 350
let p1c = 30
let p2x = 510
let p2y = 375
let p2c = 30
let p3x = 500
let p3y = 340
let p3c = 30
//group2
let p4x = 130
let p4y = 20
let p4c = 30
let p5x =110
let p5y =45
let p5c = 30
let p6x =90
let p6y =20
let p6c =30
//rats
let r1x= 75
let r1y =390
let r1w = 22
let r1h = 12
let r2x= 200
let r2y =35
let r2w = 22
let r2h = 12
let r3x= 200
let r3y =35
let r3w = 22
let r3h = 12
//parkbarriers
//river
let rx = 0
let ry = 160
let rw = 600
let rh = 65
function preload(){
music = loadSound("bensound-love.mp3");}
function setup() {
createCanvas(600, 400);
music.loop();
music.setVolume(0.2);
player = new Player ();
player2 = new Player ();
player3 = new Player ();
console.log(player.x,player.y);
for (let i = 0; i < carsNum; i++) {
cars[i] = new Car(random(width),175, color(155, 155, 0));}
}
function draw() {
background(164, 92, 35);
switch (sceneNum){
case 1:
console.log('scene 1')
textSize(25);
textFont('Arial Black');
fill(255);
text('I Should go on a Walk', 70, 360);
textSize(15);
text('(Press Arrows to Move)', 110, 380);
//BEDROOM
//desk
push()
fill(118,38,12)
rect(dx,dy,dw, dh,dr);
stroke(75,39,29)
rect(105,10,90, 45,5);
pop()
//computer
fill(166)
rect(125,13,45, 15,2);
//innercomp
fill(100)
rect(128,23,40,5);
//keyboard
fill(166)
rect(135,35,25, 15,2);
fill(100)
rect(136.5,36,22, 12,2);
//mouse
fill(166)
ellipse(168,45,5,10)
//light
fill(255, 255, 204,75)
ellipse(70,25, 75, 75);
//floorlamp
fill(0, 128, 0)
ellipse(flx,fly, flc, flc);
fill(179, 143, 0)
ellipse(70,25, 20, 20);
//loungechair
fill(0, 128, 0)
stroke(0, 77, 0)
rect(240,10,50, 45,2);
rect(240,10,50, 15,2);
rect(240,25,12, 20,2);
rect(278,25,12, 20,2);
//desk chair
noStroke()
fill(51, 51, 51)
rect(125, 60, 50,15,5);
//tvstand
fill(236, 217, 198)
rect(tvx,tvy,tvw,tvh,tvc);
//tv
fill(51, 51, 51)
rect(275,125,15,65,2);
//innertv
fill(100)
rect(275,130,5,55);
//rug
fill(153, 51, 51)
rect(140,105, 75, 125);
//innerrug
stroke(122,15,39)
rect(145,110, 65, 115);
//sidetables
fill(118, 38, 12)
noStroke()
ellipse(st1x, st1y, st1c, st1c);
ellipse(st2x, st2y, st2c, st2c);
//light
fill(255, 255, 204,50)
ellipse(20, 100, 25, 25);
ellipse(20, 225, 25, 25);
//lamps
fill(179, 143, 0)
ellipse(15, 100, 12, 12);
ellipse(15, 225, 12, 12);
//bed
fill(246,216,155)
rect(0, 125, 100, 75,5);
//innerbed
stroke(223, 191, 159)
rect(8, 132, 85, 60,5);
//pillow
noStroke()
fill(255)
rect(0, 125, 25, 75);
//sidewall
rect(swx,swy,sww,swh);
//bw1
noStroke()
rect(bw1x, bw1y, bw1w, bw1h);
//bw2
rect(bw2x, bw2y, bw2w, bw2h);
//KITCHEN
//kitchencounter
fill(220)
rect(kcx, kcy, kcw, kch);
if (player.x > dx-dw + 30 && player.x < dx+dw && player.y >dy-dh - 5 && player.y < dy+dh) {
player.x=player.x-5
player.y=player.y+5}
//sink
fill(180)
rect(375, 15, 45, 35,5);
//stove
fill(100)
rect(460,15, 55, 35,5);
fill(180)
circle(475, 25, 12);
circle(500, 25, 12);
circle(475, 40, 12);
circle(500, 40, 12);
//faucet
fill(100)
rect(395, 10, 5, 20, 20);
//knobs
circle(389, 12, 5);
circle(405, 12, 5);
//soap
fill(255, 153, 255)
circle(375,8, 12);
//spout
fill(251)
rect(374,5,3,8,2)
//sponge
fill(255, 255, 102)
rect(410, 5, 10, 8,2)
//fridge
fill(180)
rect(fx, fy, fw, fh,fc);
fill(100)
rect(350, 60, 2, 65);
//seat1
fill(236, 217, 198)
stroke(223, 191, 159)
rect(355, 150, 50,30,5);
rect(355, 145, 50,15,5);
//seat2
fill(236, 217, 198)
stroke(223, 191, 159)
rect(355, 225, 50,30,5);
rect(355, 245, 50,15,5);
//table
noStroke()
fill(118,38,12)
circle(380,200, 75);
stroke(75,39,29)
circle(380,200, 65);
//couch
fill(77,106,146)
stroke(147,182,214)
rect(420,340, 150, 65,5);
rect(420,355, 15, 35,5);
rect(555,355, 15, 35,5);
rect(420,385, 150, 15,5);
//rug
noStroke()
fill(217, 174, 17)
rect(450,150, 75, 125);
//innerrug
stroke(157,71,39)
rect(455,155, 65, 115);
player.show();
player.move();
player.exit2();
//scene 1 boundaries
//desk
if (player.x > dx-dw + 30 && player.x < dx+dw && player.y > dy-dh - 35 && player.y < dy+dh) {
player.x=player.x-5
player.y=player.y+5}
//tvstand
if (player.x > tvx-tvw +35 && player.x < tvx+tvw && player.y > tvy-tvh +75 && player.y < tvy+tvh + 15) {
player.x=player.x-5
player.y=player.y-5}
//sidewall
if (player.x > swx-sww && player.x < swx+sww && player.y > swy- tvh +15 && player.y < swy+swh -15) {
player.x=player.x-1
player.y=player.y-1}
//backwall 1
if (player.x > bw1x-bw1w && player.x < bw1x+bw1w && player.y > bw1y-bw1h && player.y < bw1y+bw1h) {
player.x=player.x-1
player.y=player.y-1}
//backwall 2
if (player.x > bw2x-bw2w +90 && player.x < bw2x+bw2w && player.y> bw2y-bw2h && player.y < bw2y+bw2h) {
player.x=player.x-1
player.y=player.y-1}
//KitchenCounter
if (player.x > kcx-kcw + 55 && player.x < kcx+kcw && player.y>kcy-kch- 45 && player.y < kcy+kch) {
player.x=player.x-5
player.y=player.y+5}
//Fridge
if (player.x > fx-fw + 25 && player.x < fx+fw && player.y>fy-fh- 45 && player.y < fy+fh) {
player.x=player.x+-1
player.y=player.y+1}
break;
case 2:
console.log('scene 2')
noStroke()
background(26, 26, 26);
//sidewalk
fill(153)
rect(0, 0, 600, 75);
rect(0,330, 600, 75);
//greyrect
fill(151)
rect(grx,gry,grw,grh)
if (player2.x > grx-grw + 15 && player2.x < grx+grw +15 && player2.y >gry-grh && player2.y < gry+grh) {
player2.x=player2.x-5
player2.y=player2.y+5}
//trash
fill(153, 102, 0)
circle(t1x, t1y, tc);
circle(t2x, t2y, tc);
circle(t3x, t3y, tc);
circle(t4x, t4y, tc);
//rats
fill(102)
ellipse(r1x, r1y, r1w,r1h);
ellipse(r2x, r2y, r2w,r2h);
ellipse(r3x, r3y, r3w,r3h);
//crowd of people
fill(51, 153, 102)
circle(p1x, p1y, p1c);
circle(p2x, p2y, p2c);
circle(p3x, p3y, p3c);
//customers
fill(51, 153, 102)
circle(p4x, p4y, p4c);
circle(p5x, p5y, p5c);
circle(p6x, p6y, p6c);
//vespas
fill(0, 153, 122)
rect(vb1x, vb1y, vb1w, vb1h, vb1c)
rect(vf1x, vf1y,vf1w, vf1h, vf1c)
//handlebar
rect(335, 300, 5, 25, 10)
rect(335, 305, 5, 25, 10)
//seat
fill(51, 26, 0)
rect(305, 308, 25, 15, 20)
fill(175, 148, 131)
rect (vb2x, vb2y, vb2w, vb2h, vb2c)
rect (vf2x, vf2y,vf2w, vf2h, vf2c)
//handlebar
rect(565, 75, 5, 25, 10)
rect(565, 80, 5, 25, 10)
//seat
fill(51, 26, 0)
rect(535, 83, 25, 15, 20)
player2.show();
player2.move();
player2.exit2();
//foodtruck
//light
fill(255, 255, 204,100)
ellipse(110,30, 85, 85);
//front lights
ellipse(200,100, 40, 40);
ellipse(200,75, 40, 40);
//tail lights
fill(230, 0, 0,100)
ellipse(70,65, 25, 25);
ellipse(70,110, 25, 25);
fill(100)
//truck
rect(btx, bty, btw, bth,btc);
noStroke()
//front of truck
rect(ftx, fty, ftw, fth,ftc);
//innertruck
push()
stroke(140)
rect(80, 65, 90,5,2);
rect(80, 75, 90,5,2);
rect(80, 85, 90,5,2);
rect(80, 95, 90,5,2);
rect(80, 105, 90,5,2);
pop()
//umbrella
fill(128, 0, 0)
rect(ux,uy,uw,uh);
//lights
fill(255, 255, 204,100)
ellipse(305,75, 100, 100);
ellipse(105, 325, 100, 100);
ellipse(455, 325, 100,100);
//streetlights
fill(100)
ellipse(305, 75, 15,30);
ellipse(105, 325, 15,30);
ellipse(455, 325, 15,30);
//trees
fill(153, 38, 0)
circle(200, 340, 60);
circle(180,340,40)
circle(210,320,40)
circle(220,340,40)
fill(128, 0, 0)
circle(430,80,60);
circle(430,60,45);
circle(410,85,50);
circle(450,85,40);
//scene 2 boundaries
//vespa
if (player2.x > vb1x-vb1w + 15 && player2.x < vb1x+vb1w +15 && player2.y >vb1y-vb1h && player2.y < vb1y+vb1h) {
player2.x=player2.x-5
player2.y=player2.y+5}
if (player2.x > vb2x-vb2w +15 && player2.x < vb2x+vb2w && player2.y >vb2y-vb2h +15 && player2.y < vb2y+vb2h) {
player2.x=player2.x-5
player2.y=player2.y+5}
//foodtruck
if (player2.x > btx-btw && player2.x < btx+btw && player2.y >bty-bth && player2.y < bty+bth) {
player2.x=player2.x-5
player2.y=player2.y+15}
if (player2.x > ftx-ftw && player2.x < ftx+ftw && player2.y >fty-fth && player2.y < fty+fth) {
player2.x=player2.x-5
player2.y=player2.y+25}
for (let i = 0; i < carsNum; i++) {
cars[i].body();
cars[i].move();
cars[i].checkCollision();
}
break;
case 3:
console.log('scene 3')
background(26, 26, 26);
//foreground
fill(0, 51, 0)
rect(0,210, 600, 250);
//back
fill(51)
rect(0,140, 600, 35);
//buildings
fill(45)
rect(30, 20, 55, 120);
rect(100, 50, 45, 90);
rect(250, 50, 45, 90);
rect(160, 70, 100, 70);
rect(320, 20, 55, 120);
rect(350, 50, 45, 90);
rect(420, 20, 55, 120);
rect(500, 70, 100, 70);
//lights
fill(255, 255, 204)
rect(30, 40, 55, 10);
rect(30, 80, 55, 10);
rect(100, 70, 45, 5);
rect(100, 120, 45, 5);
rect(420, 120, 55, 5);
rect(420, 80, 55, 5);
rect(250, 50, 45, 5);
rect(250, 90, 45, 5);
rect(160, 100, 80, 8);
rect(160, 125, 80, 8);
player3.show();
player3.move();
//river
fill(0, 41, 51)
rect(rx,ry, rw, rh);
if (player3.x > rx-rw && player3.x < rx+rw && player3.y >ry-rh && player3.y < ry+rh+10) {
player3.y=player3.y+10}
//bench
noStroke()
fill(0, 26, 0)
rect(250,220, 100, 10);
rect(250,235, 100, 10);
rect(250,250, 100, 10);
rect(250,265, 100, 10);
//crossbars
rect(325,220, 10, 55);
rect(270,220, 10, 55);
//feet
rect(255,275, 10, 15);
rect(335,275, 10, 15);
//lightpost
rect(400, 200, 15, 95);
fill(255, 255, 204)
rect(398, 175, 20, 30, 10);
//light
fill(255, 255, 204,100)
circle(408, 185, 80);
//fgorangetrees
fill(153, 38, 0)
circle(200, 390, 100);
circle(180,390,80)
circle(210,390,80)
circle(220,370,90)
circle(350, 390, 80);
circle(330,390,60)
circle(360,390,60)
circle(370,370,60)
circle(500, 290, 80);
circle(490,290,60)
circle(520,290,60)
circle(540,270,60)
circle(500, 390, 80);
circle(480,390,60)
circle(510,390,60)
circle(520,370,90)
circle(550, 290, 100);
circle(530,290,80)
circle(560,290,90)
circle(580,270,90)
//fgredtrees
fill(128, 0, 0)
circle(430,380,100);
circle(430,360,95);
circle(410,385,90);
circle(450,385,80);
circle(560,380,80);
circle(560,360,65);
circle(540,385,70);
circle(580,385,60);
circle(560,340,80);
circle(580,320,65);
circle(540,345,70);
circle(580,345,60);
//fgpurpletrees
fill(51, 0, 51)
circle(300, 390, 80);
circle(280,390,60)
circle(310,390,60)
circle(320,370,60)
circle(500, 320, 80);
circle(490,320,60)
circle(520,320,60)
circle(540,300,60)
break;
}
}
class Player {
constructor(){
this.x = 25
this.w = 35
this.y= 350
this.h = 35
}
move(){
if (keyIsDown (39)) {
this.x++;}
if (keyIsDown (37)) {
this.x--;}
if (keyIsDown (38)) {
this.y--;}
if (keyIsDown (40)) {
this.y++;}
//Overall boundaries
if(this.x < 0){
this.x = this.x+15}
if(this.x > 600){
this.x=this.x-15}
if(this.y < 400){
this.y = this.y+15}
if(this.y > 0){
this.y=this.y-15}
}
exit2(){
if (this.x > 520)
if (this.y < 5){
sceneNum++;
this.y = 5
}
}
show(){
noStroke()
fill(230, 138, 0)
ellipse(this.x,this.y, this.w, this.h)
}}
class Car {
constructor(x, y, c) {
this.x = x;
this.y = y;
this.w = 90;
this.h = 50;
this.c = c;
}
body() {
noStroke();
//front lights
fill(255, 255, 204,200)
ellipse(this.x+90,this.y, 50, 50);
ellipse(this.x+90,this.y+45, 50, 50);
//tail lights
fill(230, 0, 0,100)
ellipse(this.x-5,this.y, 35, 35);
ellipse(this.x-5,this.y+45, 35, 35);
//car
fill(this.c);
rect(this.x, this.y, this.w, this.h, 10);
}
move() {
this.x++;
if (this.x > width) {
this.x = 0;
}
}
checkCollision(){
if (player2.x+player2.w/2 > this.x && player2.x < this.x + this.w && player2.y+player2.h/2>this.y &&player2.y<this.y+this.h){
console.log("Ouch");
player2.y=height-50;
}
}
}