/**** * Classes ****/ //<Assets used in the game will automatically appear here> // Car class representing the player's vehicle var Car = Container.expand(function () { var self = Container.call(this); var carGraphics = self.attachAsset('car', { anchorX: 0.5, anchorY: 0.5 }); }); // FuelTank class representing fuel tanks on the road var FuelTank = Container.expand(function () { var self = Container.call(this); var fuelTankGraphics = self.attachAsset('fuelTank', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 8; self.update = function () { self.y += self.speed; if (self.y > 2732) { self.destroy(); } }; }); // Obstacle class representing obstacles on the road var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 8; self.update = function () { self.y += self.speed; if (self.y > 2732) { self.destroy(); } }; }); // PowerUp class representing power-ups on the road var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpGraphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 8; self.update = function () { self.y += self.speed; if (self.y > 2732) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x333333 // Set background color to a dark gray resembling a road }); /**** * Game Code ****/ // Initialize player car var playerCar = game.addChild(new Car()); playerCar.x = 2048 / 2; playerCar.y = 2732 - 200; // Arrays to keep track of obstacles and power-ups var obstacles = []; var powerUps = []; // Array to keep track of fuel tanks var fuelTanks = []; // Spawn new fuel tanks if (LK.ticks % 80 == 0) { var newFuelTank = new FuelTank(); newFuelTank.x = Math.random() * 2048; newFuelTank.y = -100; fuelTanks.push(newFuelTank); game.addChild(newFuelTank); } function handleMove(x, y, obj) { playerCar.x = x; playerCar.y = y; } // Event listeners for touch/mouse events game.down = function (x, y, obj) { handleMove(x, y, obj); }; game.move = function (x, y, obj) { handleMove(x, y, obj); }; // Game update loop game.update = function () { // Update obstacles for (var i = obstacles.length - 1; i >= 0; i--) { if (obstacles[i].intersects(playerCar)) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } if (obstacles[i].y > 2732) { obstacles[i].destroy(); obstacles.splice(i, 1); } } // Update power-ups for (var j = powerUps.length - 1; j >= 0; j--) { if (powerUps[j].intersects(playerCar)) { // Play a sound or animation for collecting power-up LK.setScore(LK.getScore() + 10); scoreTxt.setText(LK.getScore()); powerUps[j].destroy(); powerUps.splice(j, 1); // Increase speed every 10 points if (LK.getScore() % 10 === 0) { for (var k = 0; k < obstacles.length; k++) { obstacles[k].speed += 1; } for (var l = 0; l < powerUps.length; l++) { powerUps[l].speed += 1; } } } if (powerUps[j] && powerUps[j].y > 2732) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); powerUps[j].destroy(); powerUps.splice(j, 1); } } // Update fuel tanks for (var f = fuelTanks.length - 1; f >= 0; f--) { if (fuelTanks[f].intersects(playerCar)) { // Logic for collecting fuel tank fuelTanks[f].destroy(); fuelTanks.splice(f, 1); } if (fuelTanks[f] && fuelTanks[f].y > 2732) { fuelTanks[f].destroy(); fuelTanks.splice(f, 1); } } // Spawn new obstacles if (LK.ticks % 40 == 0) { // Increase the number of obstacles spawned for (var m = 0; m < 2; m++) { // Spawn two obstacles instead of one var newObstacle = new Obstacle(); newObstacle.x = Math.random() * 2048; newObstacle.y = -100; obstacles.push(newObstacle); game.addChild(newObstacle); } } // Spawn new power-ups if (LK.ticks % 60 == 0) { var newPowerUp = new PowerUp(); newPowerUp.x = Math.random() * 2048; newPowerUp.y = -100; powerUps.push(newPowerUp); game.addChild(newPowerUp); } }; // Display score var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.setText(LK.getScore()); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt);
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
// Car class representing the player's vehicle
var Car = Container.expand(function () {
var self = Container.call(this);
var carGraphics = self.attachAsset('car', {
anchorX: 0.5,
anchorY: 0.5
});
});
// FuelTank class representing fuel tanks on the road
var FuelTank = Container.expand(function () {
var self = Container.call(this);
var fuelTankGraphics = self.attachAsset('fuelTank', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
self.destroy();
}
};
});
// Obstacle class representing obstacles on the road
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
self.destroy();
}
};
});
// PowerUp class representing power-ups on the road
var PowerUp = Container.expand(function () {
var self = Container.call(this);
var powerUpGraphics = self.attachAsset('powerUp', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x333333 // Set background color to a dark gray resembling a road
});
/****
* Game Code
****/
// Initialize player car
var playerCar = game.addChild(new Car());
playerCar.x = 2048 / 2;
playerCar.y = 2732 - 200;
// Arrays to keep track of obstacles and power-ups
var obstacles = [];
var powerUps = [];
// Array to keep track of fuel tanks
var fuelTanks = [];
// Spawn new fuel tanks
if (LK.ticks % 80 == 0) {
var newFuelTank = new FuelTank();
newFuelTank.x = Math.random() * 2048;
newFuelTank.y = -100;
fuelTanks.push(newFuelTank);
game.addChild(newFuelTank);
}
function handleMove(x, y, obj) {
playerCar.x = x;
playerCar.y = y;
}
// Event listeners for touch/mouse events
game.down = function (x, y, obj) {
handleMove(x, y, obj);
};
game.move = function (x, y, obj) {
handleMove(x, y, obj);
};
// Game update loop
game.update = function () {
// Update obstacles
for (var i = obstacles.length - 1; i >= 0; i--) {
if (obstacles[i].intersects(playerCar)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
if (obstacles[i].y > 2732) {
obstacles[i].destroy();
obstacles.splice(i, 1);
}
}
// Update power-ups
for (var j = powerUps.length - 1; j >= 0; j--) {
if (powerUps[j].intersects(playerCar)) {
// Play a sound or animation for collecting power-up
LK.setScore(LK.getScore() + 10);
scoreTxt.setText(LK.getScore());
powerUps[j].destroy();
powerUps.splice(j, 1);
// Increase speed every 10 points
if (LK.getScore() % 10 === 0) {
for (var k = 0; k < obstacles.length; k++) {
obstacles[k].speed += 1;
}
for (var l = 0; l < powerUps.length; l++) {
powerUps[l].speed += 1;
}
}
}
if (powerUps[j] && powerUps[j].y > 2732) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
powerUps[j].destroy();
powerUps.splice(j, 1);
}
}
// Update fuel tanks
for (var f = fuelTanks.length - 1; f >= 0; f--) {
if (fuelTanks[f].intersects(playerCar)) {
// Logic for collecting fuel tank
fuelTanks[f].destroy();
fuelTanks.splice(f, 1);
}
if (fuelTanks[f] && fuelTanks[f].y > 2732) {
fuelTanks[f].destroy();
fuelTanks.splice(f, 1);
}
}
// Spawn new obstacles
if (LK.ticks % 40 == 0) {
// Increase the number of obstacles spawned
for (var m = 0; m < 2; m++) {
// Spawn two obstacles instead of one
var newObstacle = new Obstacle();
newObstacle.x = Math.random() * 2048;
newObstacle.y = -100;
obstacles.push(newObstacle);
game.addChild(newObstacle);
}
}
// Spawn new power-ups
if (LK.ticks % 60 == 0) {
var newPowerUp = new PowerUp();
newPowerUp.x = Math.random() * 2048;
newPowerUp.y = -100;
powerUps.push(newPowerUp);
game.addChild(newPowerUp);
}
};
// Display score
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.setText(LK.getScore());
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);