/**** 
* Classes
****/ 
// 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.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// Obstacle_2 class
var Obstacle_2 = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('Obstacle_2', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// Platform class
var Platform = Container.expand(function () {
	var self = Container.call(this);
	var platformGraphics = self.attachAsset('Plataform', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// The assets will be automatically created and loaded by the LK engine
// Player class
var Player = Container.expand(function () {
	var self = Container.call(this);
	var playerGraphics = self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.y = 0;
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background 
});
/**** 
* Game Code
****/ 
// Add background image
var background = LK.getAsset('Background', {
	anchorX: 0.5,
	anchorY: 0.5
});
background.x = 2048 / 2;
background.y = 2732 / 2;
game.addChild(background);
// Initialize and display the score text in the game.
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#ffffff",
	shadow: {
		color: "#000000",
		blur: 10,
		offsetX: 5,
		offsetY: 5
	}
});
scoreTxt.setText(LK.getScore());
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Initialize platforms
var platforms = [];
for (var i = 0; i < 5; i++) {
	var platform = game.addChild(new Platform());
	platform.x = Math.random() * 2048;
	platform.y = Math.random() * 2732;
	platforms.push(platform);
}
// Variable to track platforms and obstacles that move upwards
var movingUpwards = [];
// Initialize player and obstacles
LK.setScore(0);
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 / 2;
var obstacles = [];
for (var i = 0; i < 5; i++) {
	var obstacle = game.addChild(new Obstacle());
	obstacle.x = Math.random() * 2048;
	obstacle.y = Math.random() * 2732;
	obstacles.push(obstacle);
}
for (var i = 0; i < 5; i++) {
	var obstacle2 = game.addChild(new Obstacle_2());
	obstacle2.x = Math.random() * 2048;
	obstacle2.y = Math.random() * 2732;
	obstacles.push(obstacle2);
}
// Game update function
game.update = function () {
	// Update player movement
	player.speed += 1; // Gravity effect
	player.y += player.speed;
	if (player.y < 0) {
		LK.getSound('Hit_sound').play(); // Play game over sound
		LK.effects.flashScreen(0xff0000, 1000); // Flash screen red for 1 second
		LK.showGameOver(); // Trigger game over when player moves upwards
	}
	// Check for collisions with obstacles
	for (var i = 0; i < obstacles.length; i++) {
		if (player.intersects(obstacles[i])) {
			LK.getSound('Hit_sound').play(); // Play hit sound
			LK.effects.flashScreen(0xff0000, 1000); // Flash screen red for 1 second
			LK.showGameOver();
			break;
		}
	}
	// Check for collisions with platforms
	for (var i = 0; i < platforms.length; i++) {
		if (player.intersects(platforms[i])) {
			player.speed = 0; // Stop player movement
			player.y = platforms[i].y - player.height / 2; // Position player on top of the platform
		}
	}
};
// Player control
game.down = function (x, y, obj) {
	player.x = x;
	player.y = y;
	player.speed = -15; // Make the player jump
	LK.getSound('Jump_sound').play(); // Play jump sound
};
game.move = function (x, y, obj) {
	player.x = x;
	player.y = y;
}; /**** 
* Classes
****/ 
// 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.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// Obstacle_2 class
var Obstacle_2 = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('Obstacle_2', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// Platform class
var Platform = Container.expand(function () {
	var self = Container.call(this);
	var platformGraphics = self.attachAsset('Plataform', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -5;
	self.update = function () {
		self.y += self.speed;
		if (self.y < 0) {
			LK.setScore(LK.getScore() + 1);
			scoreTxt.setText(LK.getScore()); // Update score text
			self.y = 2732;
		}
	};
});
// The assets will be automatically created and loaded by the LK engine
// Player class
var Player = Container.expand(function () {
	var self = Container.call(this);
	var playerGraphics = self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.y = 0;
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background 
});
/**** 
* Game Code
****/ 
// Add background image
var background = LK.getAsset('Background', {
	anchorX: 0.5,
	anchorY: 0.5
});
background.x = 2048 / 2;
background.y = 2732 / 2;
game.addChild(background);
// Initialize and display the score text in the game.
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#ffffff",
	shadow: {
		color: "#000000",
		blur: 10,
		offsetX: 5,
		offsetY: 5
	}
});
scoreTxt.setText(LK.getScore());
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Initialize platforms
var platforms = [];
for (var i = 0; i < 5; i++) {
	var platform = game.addChild(new Platform());
	platform.x = Math.random() * 2048;
	platform.y = Math.random() * 2732;
	platforms.push(platform);
}
// Variable to track platforms and obstacles that move upwards
var movingUpwards = [];
// Initialize player and obstacles
LK.setScore(0);
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 / 2;
var obstacles = [];
for (var i = 0; i < 5; i++) {
	var obstacle = game.addChild(new Obstacle());
	obstacle.x = Math.random() * 2048;
	obstacle.y = Math.random() * 2732;
	obstacles.push(obstacle);
}
for (var i = 0; i < 5; i++) {
	var obstacle2 = game.addChild(new Obstacle_2());
	obstacle2.x = Math.random() * 2048;
	obstacle2.y = Math.random() * 2732;
	obstacles.push(obstacle2);
}
// Game update function
game.update = function () {
	// Update player movement
	player.speed += 1; // Gravity effect
	player.y += player.speed;
	if (player.y < 0) {
		LK.getSound('Hit_sound').play(); // Play game over sound
		LK.effects.flashScreen(0xff0000, 1000); // Flash screen red for 1 second
		LK.showGameOver(); // Trigger game over when player moves upwards
	}
	// Check for collisions with obstacles
	for (var i = 0; i < obstacles.length; i++) {
		if (player.intersects(obstacles[i])) {
			LK.getSound('Hit_sound').play(); // Play hit sound
			LK.effects.flashScreen(0xff0000, 1000); // Flash screen red for 1 second
			LK.showGameOver();
			break;
		}
	}
	// Check for collisions with platforms
	for (var i = 0; i < platforms.length; i++) {
		if (player.intersects(platforms[i])) {
			player.speed = 0; // Stop player movement
			player.y = platforms[i].y - player.height / 2; // Position player on top of the platform
		}
	}
};
// Player control
game.down = function (x, y, obj) {
	player.x = x;
	player.y = y;
	player.speed = -15; // Make the player jump
	LK.getSound('Jump_sound').play(); // Play jump sound
};
game.move = function (x, y, obj) {
	player.x = x;
	player.y = y;
};