/**** 
* Classes
****/ 
// Assets will be automatically created and loaded during gameplay
// Bird class
var Bird = Container.expand(function () {
	var self = Container.call(this);
	var birdGraphics = self.attachAsset('bird', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.gravity = 0.5;
	self.lift = -10;
	self.velocity = 0;
	self.update = function () {
		self.velocity += self.gravity;
		self.y += self.velocity;
		if (self.y > 2732 - birdGraphics.height / 2) {
			self.y = 2732 - birdGraphics.height / 2;
			self.velocity = 0;
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
		if (self.y < birdGraphics.height / 2) {
			self.y = birdGraphics.height / 2;
			self.velocity = 0;
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
	};
	self.flap = function () {
		self.velocity = self.lift;
	};
});
// Coin class
var Coin = Container.expand(function () {
	var self = Container.call(this);
	var coinGraphics = self.attachAsset('coin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.x += self.speed;
		if (self.x < -coinGraphics.width / 2) {
			self.destroy();
		}
	};
});
// Obstacle class
var Obstacle = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('obstacle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.x += self.speed;
		if (self.x < -obstacleGraphics.width / 2) {
			self.destroy();
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x87CEEB // Sky blue background
});
/**** 
* Game Code
****/ 
var background = LK.getAsset('Background122', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 2048 / 100,
	scaleY: 2732 / 113.86,
	x: 2048 / 2,
	y: 2732 / 2
});
game.addChild(background);
var bird = game.addChild(new Bird());
bird.x = 2048 / 4;
bird.y = 2732 / 2;
var obstacles = [];
var coins = [];
var score = 0;
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#000000",
	font: "Digital-7, 'Courier New', Courier, monospace"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
function spawnObstacle() {
	var obstacle = new Obstacle();
	obstacle.x = 2048 + obstacle.width / 2;
	obstacle.y = obstacle.height / 2;
	var pairedObstacle = new Obstacle();
	pairedObstacle.x = obstacle.x;
	pairedObstacle.y = 2732 - obstacle.height / 2;
	pairedObstacle.scaleY = -1; // Flip the obstacle vertically for bottom obstacles
	obstacles.push(pairedObstacle);
	game.addChild(pairedObstacle);
	obstacles.push(obstacle);
	game.addChild(obstacle);
}
function spawnCoin() {
	var coin = new Coin();
	coin.x = 2048 + coin.width / 2;
	coin.y = 2732 / 2;
	coins.push(coin);
	game.addChild(coin);
}
game.down = function (x, y, obj) {
	bird.flap();
};
game.update = function () {
	bird.update();
	for (var i = obstacles.length - 1; i >= 0; i--) {
		obstacles[i].update();
		if (bird.intersects(obstacles[i])) {
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
	}
	for (var j = coins.length - 1; j >= 0; j--) {
		coins[j].update();
		if (bird.intersects(coins[j])) {
			score += 1;
			scoreTxt.setText(score);
			LK.getSound('Funnysong123').play(); // Play sound when coin is collected
			coins[j].destroy();
			coins.splice(j, 1);
			if (score >= 100) {
				LK.effects.flashScreen(0xff0000, 1000);
				score = 0;
				scoreTxt.setText(score);
				LK.showGameOver();
			}
		}
	}
	if (LK.ticks % 120 == 0) {
		spawnObstacle();
	}
	if (LK.ticks % 180 == 0) {
		spawnCoin();
	}
}; /**** 
* Classes
****/ 
// Assets will be automatically created and loaded during gameplay
// Bird class
var Bird = Container.expand(function () {
	var self = Container.call(this);
	var birdGraphics = self.attachAsset('bird', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.gravity = 0.5;
	self.lift = -10;
	self.velocity = 0;
	self.update = function () {
		self.velocity += self.gravity;
		self.y += self.velocity;
		if (self.y > 2732 - birdGraphics.height / 2) {
			self.y = 2732 - birdGraphics.height / 2;
			self.velocity = 0;
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
		if (self.y < birdGraphics.height / 2) {
			self.y = birdGraphics.height / 2;
			self.velocity = 0;
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
	};
	self.flap = function () {
		self.velocity = self.lift;
	};
});
// Coin class
var Coin = Container.expand(function () {
	var self = Container.call(this);
	var coinGraphics = self.attachAsset('coin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.x += self.speed;
		if (self.x < -coinGraphics.width / 2) {
			self.destroy();
		}
	};
});
// Obstacle class
var Obstacle = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('obstacle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.x += self.speed;
		if (self.x < -obstacleGraphics.width / 2) {
			self.destroy();
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x87CEEB // Sky blue background
});
/**** 
* Game Code
****/ 
var background = LK.getAsset('Background122', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 2048 / 100,
	scaleY: 2732 / 113.86,
	x: 2048 / 2,
	y: 2732 / 2
});
game.addChild(background);
var bird = game.addChild(new Bird());
bird.x = 2048 / 4;
bird.y = 2732 / 2;
var obstacles = [];
var coins = [];
var score = 0;
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#000000",
	font: "Digital-7, 'Courier New', Courier, monospace"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
function spawnObstacle() {
	var obstacle = new Obstacle();
	obstacle.x = 2048 + obstacle.width / 2;
	obstacle.y = obstacle.height / 2;
	var pairedObstacle = new Obstacle();
	pairedObstacle.x = obstacle.x;
	pairedObstacle.y = 2732 - obstacle.height / 2;
	pairedObstacle.scaleY = -1; // Flip the obstacle vertically for bottom obstacles
	obstacles.push(pairedObstacle);
	game.addChild(pairedObstacle);
	obstacles.push(obstacle);
	game.addChild(obstacle);
}
function spawnCoin() {
	var coin = new Coin();
	coin.x = 2048 + coin.width / 2;
	coin.y = 2732 / 2;
	coins.push(coin);
	game.addChild(coin);
}
game.down = function (x, y, obj) {
	bird.flap();
};
game.update = function () {
	bird.update();
	for (var i = obstacles.length - 1; i >= 0; i--) {
		obstacles[i].update();
		if (bird.intersects(obstacles[i])) {
			LK.effects.flashScreen(0xff0000, 1000);
			LK.showGameOver();
		}
	}
	for (var j = coins.length - 1; j >= 0; j--) {
		coins[j].update();
		if (bird.intersects(coins[j])) {
			score += 1;
			scoreTxt.setText(score);
			LK.getSound('Funnysong123').play(); // Play sound when coin is collected
			coins[j].destroy();
			coins.splice(j, 1);
			if (score >= 100) {
				LK.effects.flashScreen(0xff0000, 1000);
				score = 0;
				scoreTxt.setText(score);
				LK.showGameOver();
			}
		}
	}
	if (LK.ticks % 120 == 0) {
		spawnObstacle();
	}
	if (LK.ticks % 180 == 0) {
		spawnCoin();
	}
};