Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: self.projectiles is undefined' in this line: 'console.log(self.projectiles.length);' Line Number: 111
User prompt
Fix Bug: 'TypeError: self.projectiles is undefined' in this line: 'console.log(self.projectiles.length);' Line Number: 111
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'console.log(numberOfProjectiles);' Line Number: 52
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: self is undefined' in this line: 'console.log(self.numberOfProjectiles);' Line Number: 51
Code edit (1 edits merged)
Please save this source code
User prompt
In the Projectile class, each time when the instance leaves the scene, reduce numberOfProjectiles in the Game class by 1
User prompt
Fix Bug: 'ReferenceError: gameInstance is not defined' in this line: 'this.gameInstance = gameInstance;' Line Number: 16
User prompt
Inside the `Game` class, you would define the `reduceNumberOfProjectiles` function. This function would decrement the `self.numberOfProjectiles` property by one. This function should be called by the Projectile each time the projectile gets out of the scene (before it gets destroyed)
Code edit (3 edits merged)
Please save this source code
User prompt
Is block in line 194 ever used?
Code edit (1 edits merged)
Please save this source code
User prompt
Is fireEnemyBullet() ever used? If not, please, remove it/
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'numberOfProjectiles--;' Line Number: 26
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'numberOfProjectiles--;' Line Number: 137
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'numberOfProjectiles++;' Line Number: 201
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'console.log(numberOfProjectiles);' Line Number: 115
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'numberOfProjectiles--;' Line Number: 26
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: numberOfProjectiles is not defined' in this line: 'numberOfProjectiles++;' Line Number: 205
User prompt
Fix Bug: 'TypeError: this.projectiles is undefined' in this line: 'console.log(this.projectiles.length);' Line Number: 119
User prompt
Fix Bug: 'ReferenceError: projectiles is not defined' in this line: 'console.log(projectiles.length);' Line Number: 119
var Particle = Container.expand(function () { var self = Container.call(this); var particleGraphics = self.createAsset('particle', 'Particle Graphics', .5, .5); self.speed = Math.random() * 5 + 2; self.direction = Math.random() * Math.PI * 2; self.alpha = 1; self.move = function () { self.x += Math.cos(self.direction) * self.speed; self.y += Math.sin(self.direction) * self.speed; self.alpha -= 0.02; if (self.alpha <= 0) self.destroy(); }; }); var Projectile = Container.expand(function () { var self = Container.call(this); var projectileGraphics = self.createAsset('projectile', 'Projectile Graphics', .5, .5); self.speed = 14; self.direction = ''; self.move = function () { if (self.direction === 'up') self.y -= self.speed; if (self.direction === 'down') self.y += self.speed; if (self.direction === 'left') self.x -= self.speed; if (self.direction === 'right') self.x += self.speed; if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) { self.destroy(); self.numberOfProjectiles--; } }; }); var Target = Container.expand(function () { var self = Container.call(this); var targetGraphics = self.createAsset('target', 'Target Graphics', .5, .5); self.speed = 7; self.direction = Math.random() < 0.5 ? 'horizontal' : 'vertical'; self.move = function () { if (self.direction === 'horizontal') { self.x += self.speed; if (self.x > 2048) self.x = 0; if (self.x < 0) self.x = 2048; } else { self.y += self.speed; if (self.y > 2732) self.y = 0; if (self.y < 0) self.y = 2732; } }; }); var Game = Container.expand(function () { var self = Container.call(this); var instructionsText = new Text2('Tap anywhere to create explosions.\nDestroy \'em all!', { size: 70, fill: '#ffffff', align: 'center' }); instructionsText.anchor.set(0.5, 0.5); instructionsText.x = 2048 / 2 - 2048 / 7; instructionsText.y = 1000; LK.gui.addChild(instructionsText); self.level = 1; self.touchesLeft = 5; self.targetsLeft = 5; self.points = 0; self.numberOfProjectiles = 0; var levelText = new Text2('Level: ' + self.level, { size: 70, fill: "#ffffff" }); levelText.anchor.set(0, 1); LK.gui.bottomLeft.addChild(levelText); var touchesLeftText = new Text2('Touches Left: ' + self.touchesLeft, { size: 70, fill: "#ffffff" }); touchesLeftText.anchor.set(0, 0); touchesLeftText.y = 50; touchesLeftText.x = 140; LK.gui.topCenter.addChild(touchesLeftText); var pointsText = new Text2('Score: ' + self.points, { size: 70, fill: "#ffffff" }); pointsText.anchor.set(0, 0); pointsText.x = 140; pointsText.y = 140; LK.gui.topCenter.addChild(pointsText); var targetsLeftText = new Text2('Targets Left: ' + self.targetsLeft, { size: 70, fill: "#ffffff" }); var projectiles = []; var enemies = []; var targets = []; var touchesLeft = 5; for (var i = 0; i < 5; i++) { var target = new Target(); target.x = Math.random() * (2048 - 100) + 50; target.y = Math.random() * (2732 - 100) + 50; targets.push(target); self.addChild(target); } var spawnEnemy = function () { var enemy = new Enemy(); enemy.x = Math.random() * 2048; enemy.y = 0; enemies.push(enemy); self.addChild(enemy); }; var fireEnemyBullet = function (enemy) { var bullet = new EnemyBullet(); bullet.x = enemy.x; bullet.y = enemy.y; enemyBullets.push(bullet); self.addChild(bullet); }; LK.on('tick', function () { console.log(self.numberOfProjectiles); if (self.touchesLeft === 0 && projectiles.length === 0) LK.showGameOver(); for (var i = 0; i < targets.length; i++) { targets[i].move(); } for (var i = 0; i < self.children.length; i++) { if (self.children[i] instanceof Projectile || self.children[i] instanceof Particle) { self.children[i].move(); for (var j = 0; j < targets.length; j++) { if (self.children[i] && targets[j] && self.children[i].intersects(targets[j])) { var directions = ['up', 'down', 'left', 'right']; for (var k = 0; k < 4; k++) { var newProjectile = new Projectile(); newProjectile.x = targets[j].x; newProjectile.y = targets[j].y; newProjectile.direction = directions[k]; projectiles.push(newProjectile); self.addChild(newProjectile); } var index = projectiles.indexOf(self.children[i]); if (index > -1) { projectiles.splice(index, 1); self.numberOfProjectiles--; self.children[i].destroy(); } targets[j].destroy(); self.targetsLeft--; self.points += 10; pointsText.setText('Score: ' + self.points); targets.splice(j, 1); targetsLeftText.setText('Targets Left: ' + self.targetsLeft); if (self.targetsLeft <= 0) { self.level++; for (var i = self.children.length - 1; i >= 0; i--) { if (self.children[i] instanceof Projectile) { self.children[i].destroy(); } } var levelUpText = new Text2('Level ' + self.level + '!', { size: 70, fill: '#ffffff', align: 'center' }); levelUpText.anchor.set(0.5, 0.5); levelUpText.x = 700; levelUpText.y = 1000; LK.gui.addChild(levelUpText); var blinkInterval = LK.setInterval(function () { levelUpText.visible = !levelUpText.visible; }, 150); LK.setTimeout(function () { LK.clearInterval(blinkInterval); levelUpText.destroy(); levelText.setText('Level: ' + self.level); }, 1500); LK.setTimeout(function () { for (var i = 0; i < 5 + self.level; i++) { var target = new Target(); target.x = Math.random() * 2048; target.y = Math.random() * 2732; targets.push(target); self.addChild(target); } self.targetsLeft = 5 + self.level; targetsLeftText.setText('Targets Left: ' + self.targetsLeft); self.touchesLeft += 1; touchesLeftText.setText('Touches Left: ' + self.touchesLeft); }, 2000); } } } } } }); stage.on('down', function (obj) { if (instructionsText) { instructionsText.setText(''); } if (self.touchesLeft > 0) { var pos = obj.event.getLocalPosition(self); var directions = ['up', 'down', 'left', 'right']; for (var i = 0; i < 4; i++) { var projectile = new Projectile(); projectile.x = pos.x; projectile.y = pos.y; projectile.direction = directions[i]; self.numberOfProjectiles++; projectile.on('destroy', function () { var index = projectiles.indexOf(projectile); if (index > -1) { projectiles.splice(index, 1); } }); self.addChild(projectile); projectiles.push(projectile); } self.touchesLeft--; touchesLeftText.setText('Touches Left: ' + self.touchesLeft); } }); });
===================================================================
--- original.js
+++ change.js
@@ -20,9 +20,12 @@
if (self.direction === 'up') self.y -= self.speed;
if (self.direction === 'down') self.y += self.speed;
if (self.direction === 'left') self.x -= self.speed;
if (self.direction === 'right') self.x += self.speed;
- if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) self.destroy();
+ if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) {
+ self.destroy();
+ self.numberOfProjectiles--;
+ }
};
});
var Target = Container.expand(function () {
var self = Container.call(this);
@@ -108,9 +111,9 @@
enemyBullets.push(bullet);
self.addChild(bullet);
};
LK.on('tick', function () {
- console.log(projectiles.length);
+ console.log(self.numberOfProjectiles);
if (self.touchesLeft === 0 && projectiles.length === 0) LK.showGameOver();
for (var i = 0; i < targets.length; i++) {
targets[i].move();
}
Simple flat icon, 200x200pixels, one bright color square with border. No shadows, top down view, transparent background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Simple flat icon, 200x200pixels, one bright color circle with border. No shadows, top down view, transparent background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Simple flat icon, 200x200pixels, one bright color diamond with border. No shadows, top down view, transparent background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Simple flat icon, 200x200pixels, one bright color romb with border. No shadows, top down view, transparent background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Simple flat icon, 200x200pixels, one bright color smiley with border. No shadows, top down view, transparent background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
1024x1366 pixels, totally black no more than 20 very small, barely visible, stars here and there. Simple Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Single Game Texture, 50x50pix. In-Game asset. 2d. Blank background. High contrast. No shadows. Light green circle with border. Simple. No other objects. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.