User prompt
Add planets and stars to background
User prompt
Change backgroundimagine into space
User prompt
Change background to cosmic colour
User prompt
Enemies including boss can not be near other enemies
User prompt
Give boss a health bar
User prompt
Boss dies after shot 8 times
User prompt
Make writing on timer gold
User prompt
Make the timer visible
User prompt
If killed more than 19 enemies in 20 minutes a sign will appear that says victory in gold
User prompt
Boss can not stay in one place mor than 3 seconds
User prompt
Let boss move any were
User prompt
Make three rounds each round harder one round is until you die
User prompt
Fix Bug: 'TypeError: undefined is not an object (evaluating 'self.minions.forEach')' in or related to this line: 'self.minions.forEach(function (minion) {' Line Number: 136
User prompt
Fix Bug: 'Script error.' in or related to this line: 'self.attachAsset('hero', {' Line Number: 141
User prompt
Fix Bug: 'Script error.' in or related to this line: 'self.attachAsset('65c89f7cc36886a2a911de99', {' Line Number: 141
User prompt
Fix Bug: 'Script error.' in or related to this line: 'self.attachAsset('hero', {' Line Number: 141
User prompt
Fix Bug: 'Script error.' in or related to this line: 'self.attachAsset('65c89f7cc36886a2a911de99', {' Line Number: 141
User prompt
Fix Bug: 'Script error.' in or related to this line: 'self.attachAsset('hero', {' Line Number: 140
User prompt
Fix Bug: 'Script error.' in or related to this line: 'var heroGraphics = self.attachAsset('hero', {' Line Number: 140
User prompt
Create a helper class that has all functions of hero
User prompt
Fix Bug: 'TypeError: undefined is not an object (evaluating 'self.minions.forEach')' in or related to this line: 'self.minions.forEach(function (minion) {' Line Number: 135
User prompt
Remove minion from game
User prompt
Minion is so posed to kill with bullets and move
User prompt
Minion is able to shoot and move
User prompt
Add minion to game
/**** * Classes ****/ var SpaceBackground = Container.expand(function () { var self = Container.call(this); self.attachAsset('spaceBackground', { anchorX: 0.5, anchorY: 0.5 }); var planet1 = self.attachAsset('planet1', { anchorX: 0.5, anchorY: 0.5, x: 500, y: 600 }); var planet2 = self.attachAsset('planet2', { anchorX: 0.5, anchorY: 0.5, x: 1500, y: 2000 }); var stars = []; for (var i = 0; i < 100; i++) { var star = self.attachAsset('star', { anchorX: 0.5, anchorY: 0.5, x: Math.random() * 2048, y: Math.random() * 2732 }); stars.push(star); } }); var EnemyBoss = Container.expand(function () { var self = Container.call(this); var enemyBossGraphics = self.attachAsset('Enemyboss', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2 }); self.health = 8; self.shootTick = 120; // Set shootTick for boss to shoot every 2 seconds // Create a health bar self.healthBar = LK.getAsset('healthBar', { width: self.width, height: 10, anchorX: 0.5, anchorY: 0 }); self.addChild(self.healthBar); self.healthBar.y = -self.height / 2; self.stayTime = 0; self.lastX = self.x; self.lastY = self.y; self.move = function () { self.x += Math.cos(LK.ticks / 60) * 5; self.y += Math.sin(LK.ticks / 60) * 5; if (self.x < 0) { self.x = 0; } if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } if (self.y < 0) { self.y = 0; } if (self.y > 2732 - self.height) { self.y = 2732 - self.height; } if (self.x === self.lastX && self.y === self.lastY) { self.stayTime++; } else { self.stayTime = 0; } if (self.stayTime >= 180) { self.x = Math.random() * (2048 - self.width); self.y = Math.random() * (2732 - self.height); self.stayTime = 0; } self.lastX = self.x; self.lastY = self.y; }; self.shoot = function () { var bullet = new EnemyBullet(); bullet.x = self.x; bullet.y = self.y + self.height / 2; game.addChild(bullet); enemyBullets.push(bullet); }; }); var EnemyType3 = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2 }); self.health = 2; // Create a health bar self.healthBar = LK.getAsset('healthBar', { width: self.width, height: 10, anchorX: 0.5, anchorY: 0 }); self.addChild(self.healthBar); self.healthBar.y = -self.height / 2; self.move = function () { self.y += Math.sin(LK.ticks / 60) * 5; self.x += Math.cos(LK.ticks / 60) * 5; if (self.y > 2732 - self.height) { self.y = 2732 - self.height; } if (self.y < 0) { self.y = 0; } if (self.x < 0) { self.x = 0; } if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } }; }); var Explosion = Container.expand(function () { var self = Container.call(this); self.frames = 30; // 0.5 seconds at 60FPS self.update = function () { if (self.frames > 0) { self.alpha = self.frames / 120; self.scaleX += 0.6; self.scaleY += 0.6; self.frames--; } else { self.destroy(); } }; // After 2 seconds, destroy the explosion LK.setTimeout(function () { self.destroy(); }, 500); self.attachAsset('explosion', { anchorX: 0.5, anchorY: 0.5 }); }); 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.minions = []; self.shoot = function () { var bullet = new HeroBullet(); bullet.x = self.x; bullet.y = self.y - self.height / 2; game.addChild(bullet); heroBullets.push(bullet); self.minions.forEach(function (minion) { minion.shoot(); }); }; }); // EnemyType1 class var EnemyType1 = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2 }); self.health = 2; // Create a health bar self.healthBar = LK.getAsset('healthBar', { width: self.width, height: 10, anchorX: 0.5, anchorY: 0 }); self.addChild(self.healthBar); self.healthBar.y = -self.height / 2; self.move = function () { self.y += Math.sin(LK.ticks / 60) * 5; self.x += Math.cos(LK.ticks / 60) * 5; if (self.y > 2732 - self.height) { self.y = 2732 - self.height; } if (self.y < 0) { self.y = 0; } if (self.x < 0) { self.x = 0; } if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } }; self.shoot = function () { var bullet = new EnemyBullet(); bullet.x = self.x; bullet.y = self.y + self.height / 2; game.addChild(bullet); enemyBullets.push(bullet); }; }); // EnemyType2 class var EnemyType2 = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 4 }); self.health = 4; // Create a health bar self.healthBar = LK.getAsset('healthBar', { width: self.width, height: 10, anchorX: 0.5, anchorY: 0 }); self.addChild(self.healthBar); self.healthBar.y = -self.height / 2; // Create a health bar self.healthBar = LK.getAsset('healthBar', { width: self.width, height: 10, anchorX: 0.5, anchorY: 0 }); self.addChild(self.healthBar); self.healthBar.y = -self.height / 2; self.move = function () { self.y += Math.sin(LK.ticks / 60) * 5; self.x += Math.cos(LK.ticks / 60) * 5; if (self.y > 2732 - self.height) { self.y = 2732 - self.height; } if (self.y < 0) { self.y = 0; } if (self.x < 0) { self.x = 0; } if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } }; self.shoot = function () { var bullet1 = new EnemyBullet(); bullet1.x = self.x - self.width / 4; bullet1.y = self.y + self.height / 2; game.addChild(bullet1); enemyBullets.push(bullet1); var bullet2 = new EnemyBullet(); bullet2.x = self.x + self.width / 4; bullet2.y = self.y + self.height / 2; game.addChild(bullet2); enemyBullets.push(bullet2); }; }); // 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: 0x000020 // Init game with cosmic background color }); /**** * Game Code ****/ var spaceBackground = game.addChild(new SpaceBackground()); spaceBackground.x = 2048 / 2; spaceBackground.y = 2732 / 2; // 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, bullet, and minion arrays var enemies = []; var heroBullets = []; var enemyBullets = []; var minions = []; // Spawn boss at start of game var enemyBoss = new EnemyBoss(); enemyBoss.x = 2048 / 2; enemyBoss.y = 2732 / 2; game.addChild(enemyBoss); enemies.push(enemyBoss); // 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; hero.y = pos.y; }); // Initialize 20 minutes timer and kill count var timer = 20 * 60; var killCount = 0; // Create a timer text object var timerTxt = new Text2('20:00', { size: 100, fill: '#ffffff' }); // Attach the timer text object to the top right corner of the screen LK.gui.topRight.addChild(timerTxt); // Create a kill count text object var killCountTxt = new Text2('Kills: 0', { size: 100, fill: '#ffffff' }); // Attach the kill count text object to the top left corner of the screen LK.gui.topLeft.addChild(killCountTxt); // Game tick event LK.on('tick', function () { // Update timer every second if (LK.ticks % 60 == 0) { timer--; // Update timer text var minutes = Math.floor(timer / 60); var seconds = timer % 60; timerTxt.setText(minutes + ':' + (seconds < 10 ? '0' : '') + seconds); } // 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(); // Update the health bar if (enemies[k] && enemies[k].healthBar) { enemies[k].healthBar.width = enemies[k].health / 2 * enemies[k].width; } // Enemies shoot based on their unique shootTick value if (enemies[k].shootTick && LK.ticks % enemies[k].shootTick == 0) { enemies[k].shoot(); } } // Spawn enemies if (LK.ticks % 120 == 0) { var enemy = new EnemyType1(); enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2; enemy.y = -enemy.height; // Assign a unique shootTick value to each enemy enemy.shootTick = 120 + Math.floor(Math.random() * 60); game.addChild(enemy); enemies.push(enemy); } // Spawn enemy boss every six minutes if (LK.ticks % (60 * 60 * 6) == 0) { var enemyBoss = new EnemyBoss(); enemyBoss.x = Math.random() * (2048 - enemyBoss.width) + enemyBoss.width / 2; enemyBoss.y = -enemyBoss.height; // Assign a unique shootTick value to each enemy boss enemyBoss.shootTick = 120 + Math.floor(Math.random() * 60); game.addChild(enemyBoss); enemies.push(enemyBoss); } 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])) { var explosion = new Explosion(); explosion.x = enemies[e].x; explosion.y = enemies[e].y; game.addChild(explosion); heroBullets[h].destroy(); heroBullets.splice(h, 1); enemies[e].health -= 1; if (enemies[e].health <= 0) { enemies[e].destroy(); enemies.splice(e, 1); // Increment kill count by 2 if enemy is EnemyBoss, otherwise by 1 var killIncrement = enemies[e] instanceof EnemyBoss ? 2 : 1; killCount += killIncrement; killCountTxt.setText('Kills: ' + killCount); } 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
@@ -1,7 +1,36 @@
/****
* Classes
****/
+var SpaceBackground = Container.expand(function () {
+ var self = Container.call(this);
+ self.attachAsset('spaceBackground', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var planet1 = self.attachAsset('planet1', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 500,
+ y: 600
+ });
+ var planet2 = self.attachAsset('planet2', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1500,
+ y: 2000
+ });
+ var stars = [];
+ for (var i = 0; i < 100; i++) {
+ var star = self.attachAsset('star', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: Math.random() * 2048,
+ y: Math.random() * 2732
+ });
+ stars.push(star);
+ }
+});
var EnemyBoss = Container.expand(function () {
var self = Container.call(this);
var enemyBossGraphics = self.attachAsset('Enemyboss', {
anchorX: 0.5,
@@ -286,8 +315,11 @@
/****
* Game Code
****/
+var spaceBackground = game.addChild(new SpaceBackground());
+spaceBackground.x = 2048 / 2;
+spaceBackground.y = 2732 / 2;
// Define the assets for the hero, enemy robots, and bullets
// Initialize hero
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
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.