xxxxxxxxxx
let bird;
let pipes = [];
let s1;
let s1_bg;
let startBtn;
let currentScene = 1;
let s2;
let s2_bg;
let s3;
let s3_bg;
let s3_againBtn;
let s1_sound;
let s2_sound;
let s3_sound;
let score = 0;
function preload() {
s1_bg = loadImage("game.bg.png");
startBtn = loadImage("start.button.png");
s2_bg = loadImage("s2.game.bg.png");
s3_bg = loadImage("scene3.png");
s3_againBtn = loadImage("try.again.png");
s1_sound = loadSound("scene1.mp3");
s2_sound = loadSound("scene1.mp3");
s3_sound = loadSound("scene3.mp3");
}
function setup() {
createCanvas(900, 750);
bird = new Bird();
s1 = new Scene1(startBtn, s1_bg, s1_sound);
s1.enable();
s2 = new Scene2(bird, pipes, s2_bg, s2_sound);
s2.disable();
s3 = new Scene3(s3_bg, s3_againBtn, s3_sound);
s3.disable();
addEventListener("BUTTON_PRESSED", handleButtonPress);
}
function handleButtonPress(e) {
if (e.detail.name == "START") {
s1.disable();
s1_sound.stop();
currentScene = 2;
s2.enable();
s2_sound.play();
} else if (e.detail.name == "AGAIN") {
s3.disable();
currentScene = 1;
score = 0; // Reset global score
s1.enable();
bird.reset();
pipes = [];
s1_sound.play();
}
if (currentScene === 3) {
s1_sound.stop();
s2_sound.stop();
s3_sound.play();
score = 0; // Reset global score
}
}
function resetGame() {
currentScene = 1;
s1.enable();
s2.disable();
s3.disable();
bird.reset();
pipes = [];
score = 0;
background(0);
}
function draw() {
background(0);
if (currentScene === 1) {
s1.display();
} else if (currentScene === 2) {
s2.display();
for (let i = pipes.length - 1; i >= 0; i--) {
pipes[i].show();
pipes[i].update();
pipes[i].checkPass(bird);
if (pipes[i].hits(bird)) {
console.log("Bird hits the pipe!");
currentScene = 3;
s2.disable();
s3.enable();
s1_sound.stop();
s2_sound.stop();
s3_sound.play();
break;
}
if (pipes[i].offscreen()) {
pipes.splice(i, 1);
}
}
bird.update();
bird.show();
drawScore();
if (frameCount % 75 === 0) {
pipes.push(new Pipe());
}
} else if (currentScene === 3) {
s3.display();
}
}
function drawScore() {
textSize(32);
fill(255);
text('Score: ' + score, 10, 30);
}
function mousePressed() {
if (currentScene === 1) {
s1.button.checkClick(mouseX, mouseY);
} else if (currentScene === 3) {
pipes = [];
s3.button.checkClick(mouseX, mouseY);
}
}
function keyPressed() {
if (key == ' ') {
bird.up();
}
}