/**** 
* Classes
****/ 
// Bomb class representing the bombs to be avoided
var Bomb = Container.expand(function () {
	var self = Container.call(this);
	var bombGraphics = self.attachAsset('bomb', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the bomb moves downwards
	// Update function to move the bomb
	self.update = function () {
		self.y += self.speed;
	};
});
// CollectiblePlane class representing the plane to be collected
var CollectiblePlane = Container.expand(function () {
	var self = Container.call(this);
	var collectiblePlaneGraphics = self.attachAsset('collectiblePlane', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the plane moves downwards
	// Add a text asset to the plane
	var planeText = new Text2('Seher', {
		size: 50,
		fill: 0x000000
	});
	planeText.anchor.set(0.5, 0);
	planeText.y = -collectiblePlaneGraphics.height;
	self.addChild(planeText);
	// Update function to move the plane
	self.update = function () {
		self.y += self.speed;
	};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Plane class representing the enemy planes
var Plane = Container.expand(function () {
	var self = Container.call(this);
	var planeGraphics = self.attachAsset('plane', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the plane moves downwards
	// Update function to move the plane
	self.update = function () {
		self.y += self.speed;
	};
});
// Player class representing the player character
var Player = Container.expand(function () {
	var self = Container.call(this);
	var playerGraphics = self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Event handler for when the player is dragged
	self.down = function (x, y, obj) {
		// No action needed
	};
});
// PlayerCharacter class representing the player's selected character
var PlayerCharacter = Container.expand(function () {
	var self = Container.call(this);
	var playerCharacterGraphics = self.attachAsset('playerCharacter', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	var playerText = new Text2('Halim', {
		size: 50,
		fill: 0x000000
	});
	playerText.anchor.set(0.5, 0);
	playerText.y = -playerCharacterGraphics.height;
	self.addChild(playerText);
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000033 // Change to dark blue for space theme
});
/**** 
* Game Code
****/ 
var background = game.addChild(LK.getAsset('background', {
	anchorX: 0,
	anchorY: 0,
	x: 0,
	y: 0
}));
// Initialize player and planes
var player = game.addChild(new PlayerCharacter());
player.x = 2048 / 2;
player.y = 2732 - 200; // Position player near the bottom of the screen
var planes = [];
var bombs = [];
var score = 0;
// Create score text
var scoreTxt = new Text2('Score: 0', {
	size: 100,
	fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Function to spawn a new plane
function spawnPlane() {
	var newPlane = new CollectiblePlane();
	newPlane.x = Math.random() * 2048; // Random x position
	newPlane.y = -100; // Start above the screen
	planes.push(newPlane);
	game.addChild(newPlane);
}
// Handle game updates
game.update = function () {
	// Update planes
	for (var i = planes.length - 1; i >= 0; i--) {
		planes[i].speed = 3 + score * 0.1; // Increase the speed of the plane as the score increases
		planes[i].update();
		// Check for collision with player
		if (planes[i].intersects(player)) {
			score += 1;
			scoreTxt.setText('Score: ' + score);
			planes[i].destroy();
			planes.splice(i, 1);
		}
		// Remove planes that are off-screen
		if (planes[i] && planes[i].y > 2732) {
			planes[i].destroy();
			planes.splice(i, 1);
		}
	}
	// Spawn a new plane every 60 ticks
	if (LK.ticks % 60 == 0) {
		spawnPlane();
	}
	// Spawn a new bomb every 120 ticks
	if (LK.ticks % 120 == 0) {
		var newBomb = new Bomb();
		newBomb.x = Math.random() * 2048; // Random x position
		newBomb.y = -100; // Start above the screen
		bombs.push(newBomb);
		game.addChild(newBomb);
	}
	// Check for collision with bombs
	for (var i = bombs.length - 1; i >= 0; i--) {
		if (bombs[i].intersects(player)) {
			LK.showGameOver();
			return; // Exit the update function to prevent further game updates after game over
		}
	}
};
// Removed the player's movement on mouse click
game.down = function (x, y, obj) {
	// No action needed
};
game.move = function (x, y, obj) {
	if (x > 0 && x < 2048) {
		player.x += (x - player.x) * 0.1;
	}
}; /**** 
* Classes
****/ 
// Bomb class representing the bombs to be avoided
var Bomb = Container.expand(function () {
	var self = Container.call(this);
	var bombGraphics = self.attachAsset('bomb', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the bomb moves downwards
	// Update function to move the bomb
	self.update = function () {
		self.y += self.speed;
	};
});
// CollectiblePlane class representing the plane to be collected
var CollectiblePlane = Container.expand(function () {
	var self = Container.call(this);
	var collectiblePlaneGraphics = self.attachAsset('collectiblePlane', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the plane moves downwards
	// Add a text asset to the plane
	var planeText = new Text2('Seher', {
		size: 50,
		fill: 0x000000
	});
	planeText.anchor.set(0.5, 0);
	planeText.y = -collectiblePlaneGraphics.height;
	self.addChild(planeText);
	// Update function to move the plane
	self.update = function () {
		self.y += self.speed;
	};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Plane class representing the enemy planes
var Plane = Container.expand(function () {
	var self = Container.call(this);
	var planeGraphics = self.attachAsset('plane', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed at which the plane moves downwards
	// Update function to move the plane
	self.update = function () {
		self.y += self.speed;
	};
});
// Player class representing the player character
var Player = Container.expand(function () {
	var self = Container.call(this);
	var playerGraphics = self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Event handler for when the player is dragged
	self.down = function (x, y, obj) {
		// No action needed
	};
});
// PlayerCharacter class representing the player's selected character
var PlayerCharacter = Container.expand(function () {
	var self = Container.call(this);
	var playerCharacterGraphics = self.attachAsset('playerCharacter', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	var playerText = new Text2('Halim', {
		size: 50,
		fill: 0x000000
	});
	playerText.anchor.set(0.5, 0);
	playerText.y = -playerCharacterGraphics.height;
	self.addChild(playerText);
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000033 // Change to dark blue for space theme
});
/**** 
* Game Code
****/ 
var background = game.addChild(LK.getAsset('background', {
	anchorX: 0,
	anchorY: 0,
	x: 0,
	y: 0
}));
// Initialize player and planes
var player = game.addChild(new PlayerCharacter());
player.x = 2048 / 2;
player.y = 2732 - 200; // Position player near the bottom of the screen
var planes = [];
var bombs = [];
var score = 0;
// Create score text
var scoreTxt = new Text2('Score: 0', {
	size: 100,
	fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Function to spawn a new plane
function spawnPlane() {
	var newPlane = new CollectiblePlane();
	newPlane.x = Math.random() * 2048; // Random x position
	newPlane.y = -100; // Start above the screen
	planes.push(newPlane);
	game.addChild(newPlane);
}
// Handle game updates
game.update = function () {
	// Update planes
	for (var i = planes.length - 1; i >= 0; i--) {
		planes[i].speed = 3 + score * 0.1; // Increase the speed of the plane as the score increases
		planes[i].update();
		// Check for collision with player
		if (planes[i].intersects(player)) {
			score += 1;
			scoreTxt.setText('Score: ' + score);
			planes[i].destroy();
			planes.splice(i, 1);
		}
		// Remove planes that are off-screen
		if (planes[i] && planes[i].y > 2732) {
			planes[i].destroy();
			planes.splice(i, 1);
		}
	}
	// Spawn a new plane every 60 ticks
	if (LK.ticks % 60 == 0) {
		spawnPlane();
	}
	// Spawn a new bomb every 120 ticks
	if (LK.ticks % 120 == 0) {
		var newBomb = new Bomb();
		newBomb.x = Math.random() * 2048; // Random x position
		newBomb.y = -100; // Start above the screen
		bombs.push(newBomb);
		game.addChild(newBomb);
	}
	// Check for collision with bombs
	for (var i = bombs.length - 1; i >= 0; i--) {
		if (bombs[i].intersects(player)) {
			LK.showGameOver();
			return; // Exit the update function to prevent further game updates after game over
		}
	}
};
// Removed the player's movement on mouse click
game.down = function (x, y, obj) {
	// No action needed
};
game.move = function (x, y, obj) {
	if (x > 0 && x < 2048) {
		player.x += (x - player.x) * 0.1;
	}
};