User prompt
Make timer simple to read
User prompt
Make timer visible
User prompt
Make a 20min timer if no enemy drops on floor a golden badge would appear and game will freeze until press play again
User prompt
If enemie drops on the floor game over
User prompt
Enemies should not shoot Bullets
User prompt
If swiped the hero has to move to area
Initial prompt
Laser Tag
/****
* Classes
****/
var GoldenBadge = Container.expand(function () {
var self = Container.call(this);
self.on('down', function (obj) {
self.destroy();
LK.resumeGame();
});
self.attachAsset('goldenBadge', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Hero class
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.attachAsset('hero', {
anchorX: 0.5,
anchorY: 0.5
});
self.shoot = function () {
var bullet = new HeroBullet();
bullet.x = self.x;
bullet.y = self.y - self.height / 2;
game.addChild(bullet);
heroBullets.push(bullet);
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.move = function () {
self.y += 2;
if (self.y > 2732 + self.height) {
self.destroy();
enemies.splice(enemies.indexOf(self), 1);
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
};
});
// HeroBullet class
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('heroBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.move = function () {
self.y -= 10;
if (self.y < -self.height) {
self.destroy();
heroBullets.splice(heroBullets.indexOf(self), 1);
}
};
});
// EnemyBullet class
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.move = function () {
self.y += 5;
if (self.y > 2732 + self.height) {
self.destroy();
enemyBullets.splice(enemyBullets.indexOf(self), 1);
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize timer text
var timerTxt = new Text2('0', {
size: 150,
fill: '#ffffff'
});
timerTxt.anchor.set(0.5, 0); // Sets anchor to the center of the top edge of the text.
LK.gui.top.addChild(timerTxt);
// Define the assets for the hero, enemy robots, and bullets
// Initialize hero
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
hero.y = 2732 - 100;
// Initialize enemy and bullet arrays
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
// Handle shooting and moving the hero
game.on('down', function (obj) {
hero.shoot();
});
// Handle swipe
game.on('move', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(game);
hero.x = pos.x;
});
// Game tick event
LK.on('tick', function () {
// Update timer display
timerTxt.setText(Math.floor(LK.ticks / 60));
// Move hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
heroBullets[i].move();
}
// Move enemy bullets
for (var j = enemyBullets.length - 1; j >= 0; j--) {
enemyBullets[j].move();
}
// Move enemies and randomly shoot
for (var k = enemies.length - 1; k >= 0; k--) {
enemies[k].move();
}
// Spawn enemies
if (LK.ticks % 120 == 0) {
var enemy = new Enemy();
enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2;
enemy.y = -enemy.height;
game.addChild(enemy);
enemies.push(enemy);
}
if (LK.ticks % 72000 == 0 && enemies.length == 0) {
var goldenBadge = new GoldenBadge();
goldenBadge.x = 2048 / 2;
goldenBadge.y = 2732 / 2;
game.addChild(goldenBadge);
LK.pauseGame();
}
// Check for collisions between hero bullets and enemies
for (var h = heroBullets.length - 1; h >= 0; h--) {
for (var e = enemies.length - 1; e >= 0; e--) {
if (heroBullets[h].intersects(enemies[e])) {
heroBullets[h].destroy();
heroBullets.splice(h, 1);
enemies[e].destroy();
enemies.splice(e, 1);
break;
}
}
}
// Check for collisions between enemy bullets and hero
for (var eb = enemyBullets.length - 1; eb >= 0; eb--) {
if (enemyBullets[eb].intersects(hero)) {
// Flash screen red for 1 second (1000ms) to show damage taken
LK.effects.flashScreen(0xff0000, 1000);
// Show game over
LK.showGameOver();
break;
}
}
}); ===================================================================
--- original.js
+++ change.js
@@ -113,9 +113,9 @@
});
// Game tick event
LK.on('tick', function () {
// Update timer display
- timerTxt.setText(LK.ticks / 60);
+ timerTxt.setText(Math.floor(LK.ticks / 60));
// Move hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
heroBullets[i].move();
}
Blue,laser like. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Golden badge shaped. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Red ufo. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Big version of enemy and only dies after shot four times rest of features are from original enemies. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Red bullet facing towards the bottom of the game. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Like a big animated explosion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Looks exactly like a realistic rocket. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Imagined cosmic planet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A golden glowing ball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A nuke (no background). Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows