/**** * Classes ****/ // Bullet class for player and enemy bullets var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 15; self.update = function () { self.y -= self.speed; }; }); // Enemy class representing enemy characters var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { // Enemy moves down the screen self.y += self.speed; // Game over if enemy touches player // Removed game over condition on enemy-player collision }; }); //<Assets used in the game will automatically appear here> // Player class representing the main character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 120; self.update = function () { // Prevent player from moving off screen if (self.x < 0) { self.x = 0; } else if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ if (game.children.filter(function (child) { return child instanceof Player; }).length < 5) { var player = game.addChild(new Player()); } // Removed the x variable var leftArrow = LK.getAsset('leftArrow', { anchorX: 0.5, anchorY: 0.5, x: 100, y: 2732 - 150 }); game.addChild(leftArrow); // Create right arrow button var rightArrow = LK.getAsset('rightArrow', { anchorX: 0.5, anchorY: 0.5, x: 250, y: 2732 - 150 }); game.addChild(rightArrow); // Add swipe event listener to move player var startX = 0; var startY = 0; game.down = function (x, y, obj) { startX = x; startY = y; shootBullet(); }; game.move = function (x, y, obj) { var deltaX = x - startX; if (deltaX > 0) { player.x += player.speed / 2; // Increase the speed of player movement on swipe } else if (deltaX < 0) { player.x -= player.speed / 2; // Increase the speed of player movement on swipe } startX = x; startY = y; }; player.x = 2048 / 2; player.y = 2732 - 200; // Initialize enemies array var enemies = []; // Initialize bullets array var bullets = []; // Function to spawn enemies var enemySpeed = 5; function spawnEnemy() { if (enemies.length < 6) { var enemy = new Enemy(); enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2; enemy.y = 0; enemy.speed = enemySpeed - 2.08; enemies.push(enemy); game.addChild(enemy); } } // Function to handle player shooting var bulletSpeed = 15; function shootBullet() { var bullet = new Bullet(); bullet.x = player.x; bullet.y = player.y; bullet.speed = bulletSpeed; bullets.push(bullet); game.addChild(bullet); } // Game update loop game.update = function () { // Update player player.update(); // Update enemies for (var i = enemies.length - 1; i >= 0; i--) { enemies[i].update(); if (enemies[i].y > 2732) { enemies[i].destroy(); enemies.splice(i, 1); LK.showGameOver(); // End the game if any enemy reaches the bottom of the screen } } // Update bullets for (var j = bullets.length - 1; j >= 0; j--) { bullets[j].update(); if (bullets[j].y < 0) { bullets[j].destroy(); bullets.splice(j, 1); } } // Initialize coin counter var coins = 0; // Create a score bar at the top middle of the screen var scoreBar = new Text2('0', { size: 150, fill: "#ffffff" }); scoreBar.anchor.set(0.5, 0); scoreBar.x = 2048 / 2; scoreBar.y = 0; LK.gui.top.addChild(scoreBar); // Check for collisions between bullets and enemies for (var k = bullets.length - 1; k >= 0; k--) { for (var l = enemies.length - 1; l >= 0; l--) { if (bullets[k].intersects(enemies[l])) { bullets[k].destroy(); bullets.splice(k, 1); enemies[l].destroy(); enemies.splice(l, 1); // Increment coin counter when an enemy is killed coins += 1; scoreBar.setText("Score: " + coins); // Display congratulatory message after killing 10 enemies if (coins === 10) { var congratsText = new Text2('Good Job!', { size: 200, fill: "#00ff00" }); congratsText.anchor.set(0.5, 0.5); congratsText.x = 2048 / 2; congratsText.y = 2732 / 2; game.addChild(congratsText); // Remove the message after 2 seconds LK.setTimeout(function () { congratsText.destroy(); }, 2000); } break; } } } // Check for collisions between player and enemies for (var m = enemies.length - 1; m >= 0; m--) { if (player.intersects(enemies[m])) { LK.showGameOver(); break; } } }; var spawnInterval = 2000; LK.setInterval(function () { if (enemies.length < 6) { spawnEnemy(); } spawnInterval -= 20; if (spawnInterval < 200) { spawnInterval = 200; } LK.clearInterval(spawnInterval); LK.setInterval(spawnEnemy, spawnInterval); }, spawnInterval); // Add swipe event listener to move player var startX = 0; var startY = 0; // Keyboard and mouse events are not supported in the LK engine
/****
* Classes
****/
// Bullet class for player and enemy bullets
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 15;
self.update = function () {
self.y -= self.speed;
};
});
// Enemy class representing enemy characters
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
// Enemy moves down the screen
self.y += self.speed;
// Game over if enemy touches player
// Removed game over condition on enemy-player collision
};
});
//<Assets used in the game will automatically appear here>
// Player class representing the main character
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 120;
self.update = function () {
// Prevent player from moving off screen
if (self.x < 0) {
self.x = 0;
} else if (self.x > 2048 - self.width) {
self.x = 2048 - self.width;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
if (game.children.filter(function (child) {
return child instanceof Player;
}).length < 5) {
var player = game.addChild(new Player());
}
// Removed the x variable
var leftArrow = LK.getAsset('leftArrow', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 2732 - 150
});
game.addChild(leftArrow);
// Create right arrow button
var rightArrow = LK.getAsset('rightArrow', {
anchorX: 0.5,
anchorY: 0.5,
x: 250,
y: 2732 - 150
});
game.addChild(rightArrow);
// Add swipe event listener to move player
var startX = 0;
var startY = 0;
game.down = function (x, y, obj) {
startX = x;
startY = y;
shootBullet();
};
game.move = function (x, y, obj) {
var deltaX = x - startX;
if (deltaX > 0) {
player.x += player.speed / 2; // Increase the speed of player movement on swipe
} else if (deltaX < 0) {
player.x -= player.speed / 2; // Increase the speed of player movement on swipe
}
startX = x;
startY = y;
};
player.x = 2048 / 2;
player.y = 2732 - 200;
// Initialize enemies array
var enemies = [];
// Initialize bullets array
var bullets = [];
// Function to spawn enemies
var enemySpeed = 5;
function spawnEnemy() {
if (enemies.length < 6) {
var enemy = new Enemy();
enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2;
enemy.y = 0;
enemy.speed = enemySpeed - 2.08;
enemies.push(enemy);
game.addChild(enemy);
}
}
// Function to handle player shooting
var bulletSpeed = 15;
function shootBullet() {
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y;
bullet.speed = bulletSpeed;
bullets.push(bullet);
game.addChild(bullet);
}
// Game update loop
game.update = function () {
// Update player
player.update();
// Update enemies
for (var i = enemies.length - 1; i >= 0; i--) {
enemies[i].update();
if (enemies[i].y > 2732) {
enemies[i].destroy();
enemies.splice(i, 1);
LK.showGameOver(); // End the game if any enemy reaches the bottom of the screen
}
}
// Update bullets
for (var j = bullets.length - 1; j >= 0; j--) {
bullets[j].update();
if (bullets[j].y < 0) {
bullets[j].destroy();
bullets.splice(j, 1);
}
}
// Initialize coin counter
var coins = 0;
// Create a score bar at the top middle of the screen
var scoreBar = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreBar.anchor.set(0.5, 0);
scoreBar.x = 2048 / 2;
scoreBar.y = 0;
LK.gui.top.addChild(scoreBar);
// Check for collisions between bullets and enemies
for (var k = bullets.length - 1; k >= 0; k--) {
for (var l = enemies.length - 1; l >= 0; l--) {
if (bullets[k].intersects(enemies[l])) {
bullets[k].destroy();
bullets.splice(k, 1);
enemies[l].destroy();
enemies.splice(l, 1);
// Increment coin counter when an enemy is killed
coins += 1;
scoreBar.setText("Score: " + coins);
// Display congratulatory message after killing 10 enemies
if (coins === 10) {
var congratsText = new Text2('Good Job!', {
size: 200,
fill: "#00ff00"
});
congratsText.anchor.set(0.5, 0.5);
congratsText.x = 2048 / 2;
congratsText.y = 2732 / 2;
game.addChild(congratsText);
// Remove the message after 2 seconds
LK.setTimeout(function () {
congratsText.destroy();
}, 2000);
}
break;
}
}
}
// Check for collisions between player and enemies
for (var m = enemies.length - 1; m >= 0; m--) {
if (player.intersects(enemies[m])) {
LK.showGameOver();
break;
}
}
};
var spawnInterval = 2000;
LK.setInterval(function () {
if (enemies.length < 6) {
spawnEnemy();
}
spawnInterval -= 20;
if (spawnInterval < 200) {
spawnInterval = 200;
}
LK.clearInterval(spawnInterval);
LK.setInterval(spawnEnemy, spawnInterval);
}, spawnInterval);
// Add swipe event listener to move player
var startX = 0;
var startY = 0;
// Keyboard and mouse events are not supported in the LK engine