/**** 
* Classes
****/ 
// Define Bike class
var Bike = Container.expand(function () {
	var self = Container.call(this);
	// Attach bike asset
	var bikeGraphics = self.attachAsset('bike', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set initial position
	self.x = 1024; // Center horizontally
	self.y = 2400; // Near bottom of the screen
	// Update method for bike
	self.update = function () {
		// Move bike based on touch input
		self.update = function () {
			// Movement logic will be handled by touch events
		};
	};
});
// Define RedBall class
var RedBall = Container.expand(function () {
	var self = Container.call(this);
	// Attach red ball asset
	var redBallGraphics = self.attachAsset('redBall', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set initial position
	self.x = 1024; // Start in the middle of the screen
	self.y = 0; // Start at the top of the screen
	// Update method for red ball
	self.update = function () {
		self.y += 5; // Move downwards
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0xFFFFFF
});
/**** 
* Game Code
****/ 
// Initialize boundary shapes
// Init game with white background
LK.setScore(0); // Initialize score to zero
LK.setScore(0); // Initialize score to zero
// Play race start sound
LK.getSound('race_start').play();
// Create and display score text on the screen
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#000000" // Set score text color to black
});
scoreTxt.anchor.set(0.5, 0); // Center the score text horizontally
LK.gui.top.addChild(scoreTxt); // Add the score text to the GUI overlay
// Add boundary objects to the game
var boundaryTop = LK.getAsset('boundaryTop', {
	x: 0,
	y: 0
});
var boundaryLeft = LK.getAsset('boundaryLeft', {
	x: 0,
	y: 0
});
var boundaryRight = LK.getAsset('boundaryRight', {
	x: 2038,
	y: 0
});
game.addChild(boundaryTop);
game.addChild(boundaryLeft);
game.addChild(boundaryRight);
// Initialize arrays and variables
var powerUps = [];
var bombs = [];
// Add bike to the game
var playerBike = new Bike();
game.addChild(playerBike);
// Handle touch events to control bike movement
game.down = function (x, y, obj) {
	playerBike.x = x;
	// Add red ball to the game
	if (LK.ticks % 60 == 0) {
		// Add a new red ball every second
		var newRedBall = new RedBall();
		game.addChild(newRedBall);
		bombs.push(newRedBall);
	}
	// Update red balls
	for (var i = bombs.length - 1; i >= 0; i--) {
		bombs[i].update();
		// Remove red balls that are off screen
		if (bombs[i].y > 2732) {
			bombs[i].destroy();
			bombs.splice(i, 1);
		}
	}
};
game.move = function (x, y, obj) {
	playerBike.x = x;
};
game.up = function (x, y, obj) {
	// No action needed on release
};
// Update game state
game.update = function () {
	playerBike.update();
}; /**** 
* Classes
****/ 
// Define Bike class
var Bike = Container.expand(function () {
	var self = Container.call(this);
	// Attach bike asset
	var bikeGraphics = self.attachAsset('bike', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set initial position
	self.x = 1024; // Center horizontally
	self.y = 2400; // Near bottom of the screen
	// Update method for bike
	self.update = function () {
		// Move bike based on touch input
		self.update = function () {
			// Movement logic will be handled by touch events
		};
	};
});
// Define RedBall class
var RedBall = Container.expand(function () {
	var self = Container.call(this);
	// Attach red ball asset
	var redBallGraphics = self.attachAsset('redBall', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set initial position
	self.x = 1024; // Start in the middle of the screen
	self.y = 0; // Start at the top of the screen
	// Update method for red ball
	self.update = function () {
		self.y += 5; // Move downwards
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0xFFFFFF
});
/**** 
* Game Code
****/ 
// Initialize boundary shapes
// Init game with white background
LK.setScore(0); // Initialize score to zero
LK.setScore(0); // Initialize score to zero
// Play race start sound
LK.getSound('race_start').play();
// Create and display score text on the screen
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#000000" // Set score text color to black
});
scoreTxt.anchor.set(0.5, 0); // Center the score text horizontally
LK.gui.top.addChild(scoreTxt); // Add the score text to the GUI overlay
// Add boundary objects to the game
var boundaryTop = LK.getAsset('boundaryTop', {
	x: 0,
	y: 0
});
var boundaryLeft = LK.getAsset('boundaryLeft', {
	x: 0,
	y: 0
});
var boundaryRight = LK.getAsset('boundaryRight', {
	x: 2038,
	y: 0
});
game.addChild(boundaryTop);
game.addChild(boundaryLeft);
game.addChild(boundaryRight);
// Initialize arrays and variables
var powerUps = [];
var bombs = [];
// Add bike to the game
var playerBike = new Bike();
game.addChild(playerBike);
// Handle touch events to control bike movement
game.down = function (x, y, obj) {
	playerBike.x = x;
	// Add red ball to the game
	if (LK.ticks % 60 == 0) {
		// Add a new red ball every second
		var newRedBall = new RedBall();
		game.addChild(newRedBall);
		bombs.push(newRedBall);
	}
	// Update red balls
	for (var i = bombs.length - 1; i >= 0; i--) {
		bombs[i].update();
		// Remove red balls that are off screen
		if (bombs[i].y > 2732) {
			bombs[i].destroy();
			bombs.splice(i, 1);
		}
	}
};
game.move = function (x, y, obj) {
	playerBike.x = x;
};
game.up = function (x, y, obj) {
	// No action needed on release
};
// Update game state
game.update = function () {
	playerBike.update();
};