User prompt
Make stingerEnemy damage you on contact
User prompt
For every 3 enemies, spawn 7 stingerEnemy
User prompt
Remove the strongEnemy
User prompt
Fix Bug: 'TypeError: undefined is not an object (evaluating 'newEnemy.updateSpeed')' in this line: 'newEnemy.updateSpeed(score);' Line Number: 374
User prompt
Make normal enemies spawn alongside the stingerEnemy
User prompt
Make the boss enemy appear every 10 waves and make it shoot multiple projectiles
User prompt
Create a new bossEnemy class that is slower but is wider and takes more hits to kill and is completely separate
User prompt
Remove the skip to wave 5 button
User prompt
Remove the debug menu
User prompt
Make stingerEnemy spawn every wave after wave 5
User prompt
Make stingerEnemy spawn in groups of 7 spread out
User prompt
Make stingerEnemy spawn in groups of 5
User prompt
Fix Bug: 'TypeError: undefined is not an object (evaluating 'newEnemy.updateSpeed')' in this line: 'newEnemy.updateSpeed(score);' Line Number: 417
User prompt
Fix Bug: 'TypeError: undefined is not an object (evaluating 'newEnemy.updateSpeed')' in this line: 'newEnemy.updateSpeed(score);' Line Number: 417
User prompt
Make stinger enemies slower, and make them spawn in groups of 4
User prompt
Make stinger enemies shoot in a downwards spread
User prompt
On wave five spawn an new stinger enemy that is completely separate from normal enimes
User prompt
Give the stinger enemy type more damage and bigger bullets
User prompt
Make he stronger enemy type only appear on wave 5,10,15 etc
User prompt
Remove the bomb and laser power up
User prompt
Add a stronger enemy type on wave 5
User prompt
Slow down the enimies rate of fire
User prompt
Change the background
User prompt
Make the spread go upwards
User prompt
Make the power ups work
===================================================================
--- original.js
+++ change.js
@@ -135,8 +135,20 @@
self.speed = self.baseSpeed;
};
self.move = function () {
self.y += self.speed;
+ if (Math.random() < 0.05) {
+ // Boss has a chance to shoot every tick
+ var projectileAngles = [-Math.PI / 4, 0, Math.PI / 4]; // Angles for projectiles
+ for (var i = 0; i < projectileAngles.length; i++) {
+ var enemyBullet = new EnemyBullet();
+ enemyBullet.x = self.x;
+ enemyBullet.y = self.y + self.height / 2;
+ enemyBullet.setAngle(projectileAngles[i]);
+ game.addChild(enemyBullet);
+ enemyBullets.push(enemyBullet);
+ }
+ }
};
self.takeDamage = function () {
self.hitPoints--;
if (self.hitPoints <= 0) {
@@ -148,10 +160,15 @@
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('enemyBullet', 'Enemy bullet', 0.5, 0);
self.speed = 5;
+ self.angle = 0; // Default angle is straight down
+ self.setAngle = function (angle) {
+ self.angle = angle;
+ };
self.move = function () {
- self.y += self.speed;
+ self.x += self.speed * Math.cos(self.angle);
+ self.y += self.speed * Math.sin(self.angle);
};
});
// PowerUp class
var PowerUp = Container.expand(function () {
@@ -357,27 +374,23 @@
var currentWave = Math.floor(LK.ticks / waveInterval) + 1;
scoreAndWaveTxt.setText('Score: ' + score + ' | Wave: ' + currentWave);
if (LK.ticks % waveInterval == 0) {
var currentWave = Math.floor(LK.ticks / waveInterval) + 1;
- for (var i = 0; i < enemiesPerWave; i++) {
- var newEnemy;
- if (currentWave > 5) {
- // Spawn a group of StingerEnemies spread out
- for (var n = 0; n < 7; n++) {
- var stingerEnemy = new StingerEnemy();
- stingerEnemy.updateSpeed(score);
- stingerEnemy.x = 2048 / 8 * (n + 1) - stingerEnemy.width / 2;
- stingerEnemy.y = -stingerEnemy.height / 2 - i * stingerEnemy.height * 1.5;
- enemies.push(stingerEnemy);
- game.addChild(stingerEnemy);
- }
- } else {
- newEnemy = new Enemy();
+ if (currentWave % 10 === 0) {
+ var bossEnemy = new BossEnemy();
+ bossEnemy.updateSpeed(score);
+ bossEnemy.x = 1024; // Center of the screen
+ bossEnemy.y = -bossEnemy.height;
+ enemies.push(bossEnemy);
+ game.addChild(bossEnemy);
+ } else {
+ for (var i = 0; i < enemiesPerWave; i++) {
+ var newEnemy = currentWave > 5 ? new StingerEnemy() : new Enemy();
+ newEnemy.updateSpeed(score);
+ newEnemy.x = Math.random() * (2048 - newEnemy.width) + newEnemy.width / 2;
+ newEnemy.y = -newEnemy.height / 2 - i * newEnemy.height;
+ enemies.push(newEnemy);
+ game.addChild(newEnemy);
}
- newEnemy.updateSpeed(score);
- newEnemy.x = Math.random() * (2048 - newEnemy.width) + newEnemy.width / 2;
- newEnemy.y = -newEnemy.height / 2 - i * newEnemy.height;
- enemies.push(newEnemy);
- game.addChild(newEnemy);
}
}
});
\ No newline at end of file
A laser. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A laser bullet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A plus sign. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A mechanical wasp. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A turret. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.