Code edit (2 edits merged)
Please save this source code
User prompt
add variable on each wave to define the position where they start spawning from.
Code edit (1 edits merged)
Please save this source code
User prompt
waves should stop spawning when reach maxwavecount
Code edit (2 edits merged)
Please save this source code
User prompt
add max wave count for game
Code edit (6 edits merged)
Please save this source code
User prompt
enemies should not touch each other
User prompt
enemies should not collide with each other. make this performant
User prompt
Fix Bug: 'ReferenceError: enemyGraphics is not defined' in this line: 'newEnemy.x = i * (enemyGraphics.width + 10) % 2048;' Line Number: 138
User prompt
Fix Bug: 'ReferenceError: enemyGraphics is not defined' in this line: 'newEnemy.x = i * (enemyGraphics.width + 10) % 2048;' Line Number: 138
User prompt
keep space of 10 pixels bewtween enemies
User prompt
enemies should not overlap with each other
Code edit (2 edits merged)
Please save this source code
User prompt
first wave should spawn on game start
Code edit (1 edits merged)
Please save this source code
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
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 = 10; 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 = 3; 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 = 4; 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 = 1; 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); self.getEnemyCountForWave = function (waveIndex) { switch (waveIndex % 5) { case 0: return 10; case 1: return 3; case 2: return 4; case 3: return 20; case 4: return 1; } }; var hero = self.addChild(new Hero()); var enemies = []; var waveIndex = 0; var waveTimer = 200; var waveInterval = 1000; var heroBullets = []; var enemyBullets = []; hero.x = 2048 / 2; hero.y = 2732 / 2; LK.on('tick', function () { hero.move(); waveTimer++; if (waveTimer >= waveInterval) { for (var i = 0; i < self.getEnemyCountForWave(waveIndex); 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
@@ -93,9 +93,9 @@
var hero = self.addChild(new Hero());
var enemies = [];
var waveIndex = 0;
var waveTimer = 200;
- var waveInterval = 200;
+ var waveInterval = 1000;
var heroBullets = [];
var enemyBullets = [];
hero.x = 2048 / 2;
hero.y = 2732 / 2;