Code edit (2 edits merged)
Please save this source code
User prompt
add a variable in each wave to define when they will spawn
User prompt
Fix Bug: 'TypeError: self.getEnemyCountForWave is not a function' in this line: 'for (var i = 0; i < self.getEnemyCountForWave(waveIndex); i++) {' Line Number: 92
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: enemiesPerWave is not defined' in this line: 'for (var i = 0; i < enemiesPerWave; i++) {' Line Number: 106
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: self.getEnemyCountForWave is not a function' in this line: 'var enemyCount = self.getEnemyCountForWave(waveIndex);' Line Number: 95
Code edit (2 edits merged)
Please save this source code
User prompt
waves will have a fixed number of enemies set in a variable in each wave
User prompt
allow to have differnt ammount of enemies per wave
User prompt
allow to have differnt ammount of enemies per wave
Code edit (1 edits merged)
Please save this source code
User prompt
Wave1 should have 10 enemies
User prompt
Improve game performace
User prompt
Optimize game performance
User prompt
Enemy should not collide with each other
User prompt
Fix enemy not spawning at game start
User prompt
Enemey should move towards hero
User prompt
Spawn enemy wave1 at game start
User prompt
Each enemy wave will have an enemy count
User prompt
Add two more enemy waves
User prompt
Each enemy wave will use a different image
User prompt
Enemy will come in waves
Initial prompt
Enemy waves
var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.createAsset('hero', 'Hero character', .5, .5); self.move = function () {}; self.shoot = function () {}; }); var EnemyWave1 = Container.expand(function (enemyCount) { var self = Container.call(this); self.enemyCount = 1; var enemyGraphics = self.createAsset('enemyWave1', 'Enemy Wave 1 character', .5, .5); self.move = function (heroX, heroY) { var dx = heroX - this.x; var dy = heroY - this.y; var magnitude = Math.sqrt(dx * dx + dy * dy); this.x += dx / magnitude * 2; this.y += dy / magnitude * 2; }; }); var EnemyWave2 = Container.expand(function (enemyCount) { var self = Container.call(this); self.enemyCount = 10; var enemyGraphics = self.createAsset('enemyWave2', 'Enemy Wave 2 character', .5, .5); self.move = function (heroX, heroY) { var dx = heroX - this.x; var dy = heroY - this.y; var magnitude = Math.sqrt(dx * dx + dy * dy); this.x += dx / magnitude * 2; this.y += dy / magnitude * 2; }; }); var EnemyWave3 = Container.expand(function (enemyCount) { var self = Container.call(this); self.enemyCount = 15; var enemyGraphics = self.createAsset('enemyWave3', 'Enemy Wave 3 character', .5, .5); self.move = function (heroX, heroY) { var dx = heroX - this.x; var dy = heroY - this.y; var magnitude = Math.sqrt(dx * dx + dy * dy); this.x += dx / magnitude * 2; this.y += dy / magnitude * 2; }; }); var EnemyWave4 = Container.expand(function (enemyCount) { var self = Container.call(this); self.enemyCount = 20; var enemyGraphics = self.createAsset('enemyWave4', 'Enemy Wave 4 character', .5, .5); self.move = function () {}; }); var EnemyWave5 = Container.expand(function (enemyCount) { var self = Container.call(this); self.enemyCount = 25; var enemyGraphics = self.createAsset('enemyWave5', 'Enemy Wave 5 character', .5, .5); self.move = function () {}; }); var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.createAsset('heroBullet', 'Hero Bullet', .5, .5); self.move = function (heroX, heroY) { var dx = heroX - this.x; var dy = heroY - this.y; var magnitude = Math.sqrt(dx * dx + dy * dy); this.x += dx / magnitude * 2; this.y += dy / magnitude * 2; }; }); var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.createAsset('enemyBullet', 'Enemy Bullet', .5, .5); self.move = function (heroX, heroY) { var dx = heroX - this.x; var dy = heroY - this.y; var magnitude = Math.sqrt(dx * dx + dy * dy); this.x += dx / magnitude * 2; this.y += dy / magnitude * 2; }; }); var Game = Container.expand(function () { var self = Container.call(this); var hero = self.addChild(new Hero()); var enemies = []; var waveIndex = 0; var waveTimer = 0; var waveInterval = 600; var enemiesPerWave = 10; var heroBullets = []; var enemyBullets = []; hero.x = 2048 / 2; hero.y = 2732 / 2; self.getEnemyCountForWave = function (waveIndex) { switch (waveIndex % 5) { case 0: return 1; case 1: return 10; case 2: return 15; case 3: return 20; case 4: return 25; } }; LK.on('tick', function () { hero.move(); waveTimer++; if (waveTimer >= waveInterval) { for (var i = 0; i < enemiesPerWave; i++) { var newEnemy; var enemyCount = self.getEnemyCountForWave(waveIndex); switch (waveIndex % 5) { case 0: newEnemy = new EnemyWave1(enemyCount); break; case 1: newEnemy = new EnemyWave2(enemyCount); break; case 2: newEnemy = new EnemyWave3(enemyCount); break; case 3: newEnemy = new EnemyWave4(enemyCount); break; case 4: newEnemy = new EnemyWave5(enemyCount); break; } newEnemy.x = Math.random() * 2048; newEnemy.y = -100; enemies.push(newEnemy); self.addChild(newEnemy); } waveIndex++; waveTimer = 0; } for (var i = 0; i < enemies.length; i++) { enemies[i].move(hero.x, hero.y); } for (var i = 0; i < heroBullets.length; i++) { heroBullets[i].move(); } for (var i = 0; i < enemyBullets.length; i++) { enemyBullets[i].move(); } }); stage.on('down', function (obj) { var pos = obj.event.getLocalPosition(self); hero.x = pos.x; hero.y = pos.y; hero.shoot(); }); });
===================================================================
--- original.js
+++ change.js
@@ -5,9 +5,9 @@
self.shoot = function () {};
});
var EnemyWave1 = Container.expand(function (enemyCount) {
var self = Container.call(this);
- self.enemyCount = 5;
+ self.enemyCount = 1;
var enemyGraphics = self.createAsset('enemyWave1', 'Enemy Wave 1 character', .5, .5);
self.move = function (heroX, heroY) {
var dx = heroX - this.x;
var dy = heroY - this.y;
@@ -75,13 +75,8 @@
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
- Game.prototype.getEnemyCountForWave = function (waveIndex) {
- var baseCount = 3;
- var additionalEnemiesPerWave = waveIndex % 5 + 1;
- return baseCount + waveIndex * additionalEnemiesPerWave;
- };
var hero = self.addChild(new Hero());
var enemies = [];
var waveIndex = 0;
var waveTimer = 0;
@@ -90,8 +85,22 @@
var heroBullets = [];
var enemyBullets = [];
hero.x = 2048 / 2;
hero.y = 2732 / 2;
+ self.getEnemyCountForWave = function (waveIndex) {
+ switch (waveIndex % 5) {
+ case 0:
+ return 1;
+ case 1:
+ return 10;
+ case 2:
+ return 15;
+ case 3:
+ return 20;
+ case 4:
+ return 25;
+ }
+ };
LK.on('tick', function () {
hero.move();
waveTimer++;
if (waveTimer >= waveInterval) {