/**** * Classes ****/ var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { self.y += self.speed; }; }); // Enemy ship class var EnemyShip = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemyShip', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 10 + 2; self.update = function () { self.y += self.speed; if (self.y > 2732) { // Trigger game over if enemy reaches the bottom LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Shoot bullet every 60 frames }; }); // Player bullet class var PlayerBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('playerBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -20; self.update = function () { self.y += self.speed; }; }); // Player spaceship class var PlayerShip = Container.expand(function () { var self = Container.call(this); var shipGraphics = self.attachAsset('playerShip', { anchorX: 0.5, anchorY: 0.5 }); self.move = function (x, y) { self.x = x * 2; self.y = y * 2; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize player spaceship asset // Initialize enemy ship asset // Initialize bullet asset for the player var secondMessage = new Text2('and I like eating daktyla.', { size: 50, fill: '#ffffff' }); secondMessage.anchor.set(0, 0); secondMessage.x = 200; secondMessage.y = 60; LK.gui.left.addChild(secondMessage); var welcomeMessage = new Text2('Hello everyone. My name is Shelo the turtle', { size: 50, fill: '#ffffff' }); welcomeMessage.anchor.set(0, 0); welcomeMessage.x = 200; welcomeMessage.y = 0; LK.gui.left.addChild(welcomeMessage); LK.setTimeout(function () {}, 4000); var enemiesReachedBottom = 0; var scoreTxt = new Text2('0', { size: 150, fill: '#ffffff' }); LK.gui.top.addChild(scoreTxt); var playerShip = game.addChild(new PlayerShip()); playerShip.x = 1024; // Center horizontally playerShip.y = 2400; // Position towards the bottom var enemies = []; var playerBullets = []; var enemyBullets = []; var score = 0; // Create enemies for (var i = 0; i < 5; i++) { var enemy = new EnemyShip(); enemy.x = Math.random() * 2048; enemy.y = -50; // Start from the top of the screen enemies.push(enemy); game.addChild(enemy); } // Touch event to move player ship game.on('move', function (obj) { var pos = obj.event.getLocalPosition(game); playerShip.x = pos.x; playerShip.y = pos.y; }); // Shoot bullet on touch game.on('up', function () { var bullet = new PlayerBullet(); bullet.x = playerShip.x; bullet.y = playerShip.y - 50; playerBullets.push(bullet); game.addChild(bullet); }); // Game tick event LK.on('tick', function () { // Update player bullets for (var b = playerBullets.length - 1; b >= 0; b--) { playerBullets[b].update(); if (playerBullets[b].y < 0) { playerBullets[b].destroy(); playerBullets.splice(b, 1); } } // Update enemy bullets for (var b = enemyBullets.length - 1; b >= 0; b--) { enemyBullets[b].update(); if (enemyBullets[b].y > 2732) { enemyBullets[b].destroy(); enemyBullets.splice(b, 1); } // Check collision with player if (playerShip.intersects(enemyBullets[b])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } // Update enemies for (var e = enemies.length - 1; e >= 0; e--) { enemies[e].update(); // Check collision with bullets for (var b = playerBullets.length - 1; b >= 0; b--) { if (enemies[e].intersects(playerBullets[b])) { enemies[e].destroy(); enemies.splice(e, 1); playerBullets[b].destroy(); playerBullets.splice(b, 1); score += 1; scoreTxt.setText(score); break; } } // Decrease lives and remove a heart if an enemy reaches the bottom if (enemies[e] && enemies[e].y >= 2732) { enemies[e].destroy(); enemies.splice(e, 1); enemiesReachedBottom++; if (enemiesReachedBottom >= 3) { // Trigger game over if three enemies have reached the bottom LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } else { // Continue game if there are lives left var enemy = new EnemyShip(); enemy.x = Math.random() * 2048; enemy.y = Math.random() * -500; // Start off-screen enemies.push(enemy); game.addChild(enemy); } } } // Add more enemies if needed if (enemies.length < 5) { var enemy = new EnemyShip(); enemy.x = Math.random() * 2048; enemy.y = Math.random() * -500; // Start off-screen enemies.push(enemy); game.addChild(enemy); } });
/****
* Classes
****/
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
self.y += self.speed;
};
});
// Enemy ship class
var EnemyShip = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemyShip', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = Math.random() * 10 + 2;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
// Trigger game over if enemy reaches the bottom
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
// Shoot bullet every 60 frames
};
});
// Player bullet class
var PlayerBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('playerBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -20;
self.update = function () {
self.y += self.speed;
};
});
// Player spaceship class
var PlayerShip = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.attachAsset('playerShip', {
anchorX: 0.5,
anchorY: 0.5
});
self.move = function (x, y) {
self.x = x * 2;
self.y = y * 2;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize player spaceship asset
// Initialize enemy ship asset
// Initialize bullet asset for the player
var secondMessage = new Text2('and I like eating daktyla.', {
size: 50,
fill: '#ffffff'
});
secondMessage.anchor.set(0, 0);
secondMessage.x = 200;
secondMessage.y = 60;
LK.gui.left.addChild(secondMessage);
var welcomeMessage = new Text2('Hello everyone. My name is Shelo the turtle', {
size: 50,
fill: '#ffffff'
});
welcomeMessage.anchor.set(0, 0);
welcomeMessage.x = 200;
welcomeMessage.y = 0;
LK.gui.left.addChild(welcomeMessage);
LK.setTimeout(function () {}, 4000);
var enemiesReachedBottom = 0;
var scoreTxt = new Text2('0', {
size: 150,
fill: '#ffffff'
});
LK.gui.top.addChild(scoreTxt);
var playerShip = game.addChild(new PlayerShip());
playerShip.x = 1024; // Center horizontally
playerShip.y = 2400; // Position towards the bottom
var enemies = [];
var playerBullets = [];
var enemyBullets = [];
var score = 0;
// Create enemies
for (var i = 0; i < 5; i++) {
var enemy = new EnemyShip();
enemy.x = Math.random() * 2048;
enemy.y = -50; // Start from the top of the screen
enemies.push(enemy);
game.addChild(enemy);
}
// Touch event to move player ship
game.on('move', function (obj) {
var pos = obj.event.getLocalPosition(game);
playerShip.x = pos.x;
playerShip.y = pos.y;
});
// Shoot bullet on touch
game.on('up', function () {
var bullet = new PlayerBullet();
bullet.x = playerShip.x;
bullet.y = playerShip.y - 50;
playerBullets.push(bullet);
game.addChild(bullet);
});
// Game tick event
LK.on('tick', function () {
// Update player bullets
for (var b = playerBullets.length - 1; b >= 0; b--) {
playerBullets[b].update();
if (playerBullets[b].y < 0) {
playerBullets[b].destroy();
playerBullets.splice(b, 1);
}
}
// Update enemy bullets
for (var b = enemyBullets.length - 1; b >= 0; b--) {
enemyBullets[b].update();
if (enemyBullets[b].y > 2732) {
enemyBullets[b].destroy();
enemyBullets.splice(b, 1);
}
// Check collision with player
if (playerShip.intersects(enemyBullets[b])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
// Update enemies
for (var e = enemies.length - 1; e >= 0; e--) {
enemies[e].update();
// Check collision with bullets
for (var b = playerBullets.length - 1; b >= 0; b--) {
if (enemies[e].intersects(playerBullets[b])) {
enemies[e].destroy();
enemies.splice(e, 1);
playerBullets[b].destroy();
playerBullets.splice(b, 1);
score += 1;
scoreTxt.setText(score);
break;
}
}
// Decrease lives and remove a heart if an enemy reaches the bottom
if (enemies[e] && enemies[e].y >= 2732) {
enemies[e].destroy();
enemies.splice(e, 1);
enemiesReachedBottom++;
if (enemiesReachedBottom >= 3) {
// Trigger game over if three enemies have reached the bottom
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
} else {
// Continue game if there are lives left
var enemy = new EnemyShip();
enemy.x = Math.random() * 2048;
enemy.y = Math.random() * -500; // Start off-screen
enemies.push(enemy);
game.addChild(enemy);
}
}
}
// Add more enemies if needed
if (enemies.length < 5) {
var enemy = new EnemyShip();
enemy.x = Math.random() * 2048;
enemy.y = Math.random() * -500; // Start off-screen
enemies.push(enemy);
game.addChild(enemy);
}
});