//variables used, less than reccomended as more had a tendency to break the game boolean collisionWall = false; boolean finish = false; float x = 0; void setup(){ size(400,400); println("traverse the maze, ignite the brazier"); } void draw(){ background(0); //moving shadows x=0; while (x < width) { x = x + 10; fill(30,30,30,50); ellipse(x, random(0,400), random(10,20), random(10,20)); frameRate(20); } //torch handle & cloth drawing fill(180,130,0,100); rect(mouseX,mouseY-20,5,30); fill(100,100,100); rect(mouseX,mouseY-20,5,5); //torch illumination around mouse noStroke(); fill(255,170,0,90); triangle(mouseX,mouseY + random(-46,-34),mouseX+3,mouseY-15,mouseX-3,mouseY-15); triangle(mouseX,mouseY +random(-52,-38),mouseX +random(6,9), mouseY-13,mouseX + random(1,5), mouseY-13); triangle(mouseX + random(3,6), mouseY + random(-55,-45), mouseX - random(2,-5), mouseY - random(10,14),mouseX + 5, mouseY-random(10,12)); fill(255,255,0,60); ellipse(mouseX+3,mouseY-20,175,175); //finish plate drawing fill(0); rect(180,180,40,40); //finishing fire animation & check for finish if (finish){ background(100,100,0); println("you throw your torch into the braizer, illuminating the area"); fill(255,120,0,99); triangle(random(182,180),random(220,222),random(200,202),random(230,232),random(196,200),random(150,160)); triangle(random(199,197),random(230,227),random(218,215),random(220,222),random(195,193),random(153,160)); triangle(random(185,187),random(220,222),random(210,212),random(220,222),random(190,195),random(170,190)); triangle(random(192,190),random(210,208),random(210,212),random(225,222),random(195,197),random(160,180)); fill(255,220,0,99); triangle(random(182,180),random(220,222),random(200,202),random(230,232),random(195,197),random(160,180)); triangle(random(198,200),random(228,230),random(219,217),random(220,222),random(195,197),random(160,180)); } //drawing the walls //outerwalls/wall#1 fill(0); rect(20,20,100,20); rect(20,20,20,240); rect(20,280,20,100); rect(20,360,360,20); rect(360,320,20,60); rect(360,20,20,280); rect(140,20,220,20); //blocks#1 rect(40,100,20,20); rect(80,340,20,20); rect(340,220,20,20); //wall#2 rect(60,60,180,20); rect(60,60,20,80); rect(60,160,20,180); rect(60,320,80,20); rect(160,320,180,20); rect(320,280,20,40); rect(320,60,20,200); rect(260,60,80,20); //blocks#2 rect(200,80,20,20); rect(300,180,20,20); rect(180,300,20,20); rect(80,180,20,20); //wall#3 rect(100,100,60,20); rect(100,100,20,120); rect(100,240,20,60); rect(100,280,100,20); rect(220,280,80,20); rect(280,160,20,140); rect(280,100,20,40); //blocks#3 rect(180,100,120,20); rect(120,160,20,20); rect(160,260,20,20); rect(260,180,20,20); //walls#4 rect(240,140,20,60); rect(140,140,120,20); rect(140,140,20,120); rect(140,240,120,20); rect(240,220,20,40); //check for any collisions if (collisionWall){ fill(0,0,0); rect(0,0,400,400); println("your fire is extinguished and you're consumed by the dark"); } //finish requirements if (mouseX > 180 && mouseX < 220 && mouseY > 180 && mouseY < 220){ finish = true; } //wall collisions #1 if (mouseX > 20 && mouseX < 120 && mouseY > 20 && mouseY < 40 || mouseX > 140 && mouseX < 380 && mouseY > 20 && mouseY < 40 || mouseX > 360 && mouseX < 380 && mouseY > 20 && mouseY < 300 || mouseX > 360 && mouseX < 380 && mouseY > 320 && mouseY < 380 || mouseX > 20 && mouseX < 380 && mouseY > 360 && mouseY < 380 || mouseX > 20 && mouseX < 40 && mouseY > 280 && mouseY < 380 || mouseX > 20 && mouseX < 40 && mouseY > 20 && mouseY < 260 || //block collisions #1 mouseX > 40 && mouseX < 60 && mouseY > 100 && mouseY < 120 || mouseX > 80 && mouseX < 100 && mouseY > 340 && mouseY < 360 || mouseX > 340 && mouseX < 360 && mouseY > 220 && mouseY < 240 || //wall collisions #2 mouseX > 60 && mouseX < 80 && mouseY > 60 && mouseY < 140 || mouseX > 60 && mouseX < 80 && mouseY > 160 && mouseY < 340 || mouseX > 60 && mouseX < 140 && mouseY > 320 && mouseY < 340 || mouseX > 180 && mouseX < 340 && mouseY >320 && mouseY < 340 || mouseX > 320 && mouseX < 340 && mouseY > 280 && mouseY < 340 || mouseX > 320 && mouseX < 340 && mouseY > 60 && mouseY < 260 || mouseX > 260 && mouseX < 340 && mouseY > 60 && mouseY < 80 || mouseX > 60 && mouseX < 240 && mouseY > 60 && mouseY < 80 || //block collisions #2 mouseX > 80 && mouseX < 100 && mouseY > 180 && mouseY < 200 || mouseX > 180 && mouseX < 200 && mouseY > 300 && mouseY < 320 || mouseX > 300 && mouseX < 320 && mouseY >180 && mouseY <200 || mouseX > 200 && mouseX < 220 && mouseY > 80 && mouseY < 100 || //wall collisions #3 mouseX > 100 && mouseX < 120 && mouseY > 100 && mouseY < 220 || mouseX > 100 && mouseX < 120 && mouseY > 240 && mouseY < 300 || mouseX > 100 && mouseX < 200 && mouseY > 280 && mouseY < 300 || mouseX > 220 && mouseX < 300 && mouseY > 280 && mouseY < 300 || mouseX > 280 && mouseX < 300 && mouseY > 160 && mouseY < 300 || mouseX > 280 && mouseX < 300 && mouseY > 100 && mouseY < 140 || mouseX > 180 && mouseX < 300 && mouseY > 100 && mouseY < 120 || mouseX > 100 && mouseX < 160 && mouseY > 100 && mouseY < 120 || //block collisions #3 mouseX > 120 && mouseX < 140 && mouseY > 160 && mouseY < 180 || mouseX > 160 && mouseX < 180 && mouseY > 260 && mouseY < 280 || mouseX > 260 && mouseX < 280 && mouseY > 180 && mouseY < 200 || //wall collisions #4 mouseX > 140 && mouseX < 160 && mouseY > 140 && mouseY < 260 || mouseX > 140 && mouseX < 260 && mouseY > 240 && mouseY < 260 || mouseX > 240 && mouseX < 260 && mouseY > 140 && mouseY < 200 || mouseX > 140 && mouseX < 260 && mouseY > 140 && mouseY < 160){ //if these boundaries are met then switch collisionWall to true collisionWall = true; } }