xxxxxxxxxx
123
/*
Victoria Belandria
Final Project
Spring 2024
*/
var x = 296;
var yY = 130;
var speedX = 1.5;
var speedY = 1.5;
var mouseX = 150;
var w, h;
var laser;
var state = 1;
var totalTime = 600;
var totalClicks = 0;
function preload() {
laser = loadSound("blaster.mp3");
}
function setup() {
createCanvas(600, 300);
w = random(100, 530);
h = random(100, 230);
var b = createButton("Start Over");
b.mousePressed(reset);
}
function draw() {
// STATE 1
if (state == 1) {
noStroke();
background(0, 0, 0);
fill(187, 226, 247);
ellipse(150, 150, 300, 300);
ellipse(150 + 295, 150, 300, 300);
fill("white");
var y = 130;
circle(40, y, 20);
circle(57, y, 20);
circle(48, 120, 20);
circle(64, 120, 20);
circle(73, y, 20);
circle(440, 100, 20);
circle(457, 100, 20);
circle(448, 90, 20);
circle(464, 90, 20);
circle(473, 100, 20);
// CHARACTER
fill("#C011A5");
ellipse(x, yY, 70, 4);
ellipse(x, yY - 4, 18, 20);
fill("#770866");
ellipse(x - 20, yY + 5, 8, 11);
ellipse(x + 20, yY + 5, 8, 11);
ellipse(x, yY - 8, 15, 10);
// UFO
fill("grey");
ellipse(w, h, 50, 7);
fill("blue");
arc(w, h - 4, 20, 12, PI, 0);
// LASER
fill("red");
triangle(x + 20, yY - 2, x + 20, yY + 2, mouseX, mouseY);
triangle(x - 20, yY - 2, x - 20, yY + 2, mouseX - 30, mouseY);
x = x + speedX;
yY += speedY;
if (x > width - 25 || x < 1 + 24) {
speedX *= -1;
}
if (yY > height || yY < 1) {
speedY *= -1;
}
}
// TIMER
textSize(25);
fill("red");
textFont("Sixtyfour");
text(totalTime, 20, 40);
totalTime--;
if (totalTime <= 0) {
state = 2;
}
// STATE 2
if (state == 2) {
background("#000");
textSize(25);
fill("red");
textFont("Sixtyfour");
text("Game Over", 195, height / 2 - 40);
fill("#fff");
text(totalClicks, 288, height / 2);
}
}
// CLICK & SOUND INTERACTION
function mousePressed() {
var d = dist(mouseX, mouseY, w, h);
if (d < 10) {
w = random(100, 580);
h = random(20, 180);
laser.play();
totalClicks++;
}
}
// RESET
function reset() {
totalClicks = 0;
totalTime = 600;
state = 1;
}