User prompt
Add a powerup that Doubles the bullets
User prompt
Enemies have 2 health
User prompt
Make it play the "Shoot" Sound when shooting
User prompt
Make bullets shoot multiple times like the player on the enemy
User prompt
Make enemy bullets clone
User prompt
Make enemys shoot too
Initial prompt
Ferious Shooter
/**** * Classes ****/ // Enemy class 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 () { self.y += self.speed; if (self.y > 2732 + enemyGraphics.height / 2) { self.destroy(); enemies.splice(enemies.indexOf(self), 1); } }; self.shoot = function () { for (var i = 0; i < 3; i++) { var bullet = new EnemyBullet(); bullet.x = self.x + i * 50 - 50; // Offset each bullet for spread effect bullet.y = self.y + enemyGraphics.height / 2; game.addChild(bullet); enemyBullets.push(bullet); } }; }); // EnemyBullet class 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; if (self.y > 2732 + bulletGraphics.height / 2) { self.destroy(); enemyBullets.splice(enemyBullets.indexOf(self), 1); } }; }); //<Assets used in the game will automatically appear here> // Hero class var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.attachAsset('hero', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { // Hero update logic }; self.shoot = function () { var bullet = new HeroBullet(); bullet.x = self.x; bullet.y = self.y - heroGraphics.height / 2; game.addChild(bullet); heroBullets.push(bullet); }; }); // HeroBullet class var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('heroBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -15; self.update = function () { self.y += self.speed; if (self.y < -bulletGraphics.height / 2) { self.destroy(); heroBullets.splice(heroBullets.indexOf(self), 1); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ var hero; var enemies = []; var heroBullets = []; var enemyBullets = []; var score = 0; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); function spawnEnemy() { var enemy = new Enemy(); enemy.x = Math.random() * 2048; enemy.y = -enemy.height / 2; game.addChild(enemy); enemies.push(enemy); } function handleMove(x, y, obj) { hero.x = x; hero.y = y; } game.down = function (x, y, obj) { handleMove(x, y, obj); }; game.move = handleMove; game.update = function () { if (LK.ticks % 60 == 0) { spawnEnemy(); } for (var i = heroBullets.length - 1; i >= 0; i--) { heroBullets[i].update(); } for (var i = enemies.length - 1; i >= 0; i--) { enemies[i].update(); if (LK.ticks % 120 == 0) { enemies[i].shoot(); } } for (var i = enemyBullets.length - 1; i >= 0; i--) { enemyBullets[i].update(); } for (var i = heroBullets.length - 1; i >= 0; i--) { for (var j = enemies.length - 1; j >= 0; j--) { if (heroBullets[i].intersects(enemies[j])) { score++; scoreTxt.setText(score); heroBullets[i].destroy(); enemies[j].destroy(); heroBullets.splice(i, 1); enemies.splice(j, 1); break; } } } for (var i = enemyBullets.length - 1; i >= 0; i--) { if (enemyBullets[i].intersects(hero)) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); break; } } }; hero = new Hero(); hero.x = 2048 / 2; hero.y = 2732 - 200; game.addChild(hero); LK.setInterval(function () { hero.shoot(); }, 500);
===================================================================
--- original.js
+++ change.js
@@ -16,18 +16,15 @@
enemies.splice(enemies.indexOf(self), 1);
}
};
self.shoot = function () {
- var bullet1 = new EnemyBullet();
- bullet1.x = self.x - 50;
- bullet1.y = self.y + enemyGraphics.height / 2;
- game.addChild(bullet1);
- enemyBullets.push(bullet1);
- var bullet2 = new EnemyBullet();
- bullet2.x = self.x + 50;
- bullet2.y = self.y + enemyGraphics.height / 2;
- game.addChild(bullet2);
- enemyBullets.push(bullet2);
+ for (var i = 0; i < 3; i++) {
+ var bullet = new EnemyBullet();
+ bullet.x = self.x + i * 50 - 50; // Offset each bullet for spread effect
+ bullet.y = self.y + enemyGraphics.height / 2;
+ game.addChild(bullet);
+ enemyBullets.push(bullet);
+ }
};
});
// EnemyBullet class
var EnemyBullet = Container.expand(function () {
A space shooter enemy that shoots bullets. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A bullet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A spaceship shooter. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.