xxxxxxxxxx
324
let snowballs = [];
let d;
let x;
let y;
function setup() {
createCanvas(600, 600);
for (let i = 0; i < 25; i++) {
snowballs[i] = new Snowball();
}
}
function draw() {
background(220);
noStroke();
//sky
fill(128, 212, 255);
rect(0, 0, 600, 500);
fill(148, 184, 184);
rect(0, 500, 600, 200);
//building1
fill(255, 112, 77);
rect(550, 200, 50, 300);
//window1
window1(565, 220);
window1(565, 280);
window1(565, 340);
window1(565,400);
//door1
door1(580, 450);
//building2
fill(170, 170, 85)
rect(400, 200, 150, 300);
//window2
window2(415, 220);
window2(415, 280);
window2(415, 340);
window2(415, 400);
window2(490, 220);
window2(490, 280);
window2(490, 340);
window2(490, 400);
//door2
door2(453, 460);
//building3
fill(255, 214, 153);
rect(250, 200, 150, 300);
//window3
window3(285,240);
window3(285,300);
window3(285,360);
window3(285,420);
window3(360, 240);
window3(360,300);
window3(360,360);
window3(360, 420);
//door3
door3(307, 450);
//building4
fill(198, 83, 140);
rect(100, 200, 150, 300);
//window4
window4(120, 220);
window4(180, 220);
window4(120, 300);
window4(180, 300);
window4(120, 380);
window4(180, 380);
//door4
door4(150, 450);
//building5
fill(102, 102, 153)
rect(0, 200, 100, 300);
//window5
window5(0, 220);
window5(0, 290);
window5(0, 360);
window5(0, 430);
window5(60,220);
window5(60, 290);
window5(60, 360);
window5(60, 430);
fill(51, 77, 77);
rect(0, 370, 600, 60);
fill(179, 204, 204)
rect(10, 370, 8, 60);
rect(90, 370, 8, 60);
rect(170, 370, 8, 60);
rect(250, 370, 8, 60);
rect(330, 370, 8, 60);
rect(410, 370, 8, 60);
rect(490, 370, 8, 60);
rect(570, 370, 8, 60);
fill(0, 0, 0);
rect(0, 360, 100, 10);
fill(224, 224, 235);
rect(0, 350, 100, 10);
fill(51, 153, 51);
rect(0, 330, 100, 20);
rect(10, 290,5, 40);
rect(30, 290, 5, 40);
rect(50, 290, 5, 40);
rect(70, 290, 5, 40);
rect(90, 290, 5, 40);
rect(0, 270, 100, 20);
fill(0, 102, 34)
rect(0, 330, 100, 2.5);
rect(0, 335, 100, 2.5);
rect(0, 340, 100, 2.5);
rect(0, 345, 100, 2.5);
rect(0, 350, 100, 2.5);
rect(0, 350, 100, 2.5);
rect(0, 290, 100, 2.5);
rect(0, 285, 100, 2.5);
rect(0, 280, 100, 2.5);
rect(0, 275, 100, 2.5);
rect(0, 270, 100, 2.5);
rect(100, 340, 40, 30);
rect(112, 250, 15, 100);
fill(51, 153, 51);
rect(105, 345, 30, 20);
rect(114, 253, 10, 90);
fill(240, 240, 245)
ellipse(120, 250, 35, 35);
fill(255, 255, 204)
ellipse(120, 250, 30, 30);
fill(0, 0, 0);
rect(20, 290, 50, 20);
fill(255,255,255);
rect(25, 294, 40, 10);
fill(0,0,0);
text("SUBWAY", 28, 302);
textSize(8);
textStyle(BOLD);
fill(255, 255, 128);
rect(0, 550,40, 10);
rect(80, 550, 40, 10);
rect(160, 550, 40, 10);
rect(240, 550, 40, 10);
rect(320, 550, 40, 10);
rect(400, 550, 40, 10);
rect(480, 550, 40, 10);
rect(560, 550, 40, 10);
for (let i = 0; i < 10; i++) {
d = dist(mouseX, mouseY, snowballs[i].x, snowballs[i].y);
if (d < 10) {
fill(255);
if (mouseIsPressed){
snowballs.splice(i,1);
}
} else {
fill(255);
}
if (snowballs[i] != null){
snowballs[i].show();
}
}
function window1(window1X, window1Y){
fill(255, 236, 179);
rect(window1X-5, window1Y-5, 30, 40);
fill(163, 163, 194);
rect(window1X-2.5, window1Y-2.5, 25, 35);
fill(153, 51, 51);
rect(window1X, window1Y, 20, 30);
fill(255, 236, 179);
rect(window1X+8.5, window1Y, 2.5, 30);
fill(255, 236, 179);
rect(window1X, window1Y+12.5, 20, 2.5);
fill(41, 41, 61);
rect(window1X-7, window1Y+35, 35, 10);
}
function window2(window2X, window2Y){
fill(96, 32, 63);
rect(window2X, window2Y, 45, 55);
fill(230, 179, 204);
rect(window2X+2.5, window2Y+2.5, 40, 50);
fill(57, 19, 38);
rect(window2X-2.5, window2Y, 50, 10);
fill(134, 45, 89);
rect(window2X+2.5, window2Y+10, 20, 42.5);
fill(255, 255, 179)
rect(window2X+2.5, window2Y+10, 40, 2);
rect(window2X+2.5, window2Y+14, 40, 2);
rect(window2X+2.5, window2Y+18, 40, 2);
rect(window2X+2.5, window2Y+22, 40, 2);
rect(window2X+2.5, window2Y+26, 40, 2);
rect(window2X+2.5, window2Y+30, 40, 2);
rect(window2X+2.5, window2Y+34, 40, 2);
rect(window2X+2.5, window2Y+38, 40, 2);
rect(window2X+2.5, window2Y+42, 40, 2);
rect(window2X+2.5, window2Y+46, 40, 2);
rect(window2X+2.5, window2Y+50, 40, 2);
}
function door1(door1X, door1Y){
fill(41, 41, 61);
rect(door1X-5, door1Y-3, 50, 53);
fill(82, 82, 122);
rect(door1X, door1Y, 40, 50);
}
function door2(door2X, door2Y){
fill(102, 0, 0);
rect(door2X, door2Y, 40, 40);
}
function window3(window3X, window3Y){
fill(102, 102, 153);
ellipse(window3X, window3Y, 50, 50);
fill(133, 133, 173, 200);
ellipse(window3X, window3Y, 40, 40);
}
}
function door3(door3X, door3Y){
fill(41, 41, 61);
rect(door3X, door3Y, 40, 50);
fill(92, 92, 138);
rect(door3X+5, door3Y+5, 10, 20);
rect(door3X+25, door3Y+5, 10, 20);
rect(door3X+5, door3Y+30, 10, 20);
rect(door3X+25, door3Y+30, 10, 20);
fill(0,0,0);
ellipse(door3X+30, door3Y+28, 8, 8);
}
function window4(window4X, window4Y){
fill(102, 102, 0)
rect(window4X, window4Y, 40, 60);
fill(179, 179, 0);
rect(window4X+5, window4Y+5, 30, 50);
fill(255, 255, 179);
rect(window4X+5, window4Y+5, 30, 20);
fill(77, 77, 0);
rect(window4X+10, window4Y+25, 3, 25);
fill(77, 77, 0);
ellipse(window4X+11.5, window4Y+50,5,5);
}
function door4(door4X, door4Y){
fill(51, 51, 0);
rect(door4X, door4Y, 40, 50);
fill(77, 77, 0);
rect(door4X+5, door4Y+5, 30, 40);
fill(51,51,0);
ellipse(door4X+28, door4Y+25, 10, 10);
}
function window5(window5X, window5Y){
fill(255, 204, 153);
rect(window5X, window5Y, 30, 50);
fill(179, 89, 0);
rect(window5X+2.5, window5Y+4.5, 25, 40);
rect(window5X-2, window5Y+50, 35, 10);
fill(77, 38, 0);
rect(window5X+5, window5Y+9, 20, 30);
}
function mousePressed(){
for (let i = 0; i < snowballs.length; i++) {
d = dist(mouseX, mouseY, snowballs[i].x, snowballs[i].y);
if (d < 25) {
snowballs.splice(i,1);
}
}
}
class Snowball {
constructor() {
this.x = random(width);
this.y = random(height);
}
show() {
ellipse(this.x, this.y, 10, 10);
}
}