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
User prompt
Fix Bug: 'ReferenceError: projectiles is not defined' in this line: 'var index = projectiles.indexOf(self.children[i]);' Line Number: 25
Code edit (1 edits merged)
Please save this source code
User prompt
Projectiles are still not destroyed when leaving the scene.
User prompt
This revision still doesn't destroy projectiles that leave thee scene.
User prompt
Please, attempt to fix the source code.
User prompt
Remove unused `enemyBullets` array
User prompt
Not good! Ensure that the projectile gets destroyed when leaving the scene!
User prompt
Each time the projectile leaves the scene, destroy it (and remove from the array)
User prompt
Each time when player touches, 8 projectiles get created instead of 4. Fix it.
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: self.projectiles is undefined' in this line: 'var index = self.projectiles.indexOf(self);' Line Number: 25
User prompt
Fix Bug: 'TypeError: this.projectiles is undefined' in this line: 'var index = this.projectiles.indexOf(self);' Line Number: 25
User prompt
Fix Bug: 'ReferenceError: projectiles is not defined' in this line: 'var index = projectiles.indexOf(self);' Line Number: 25
User prompt
Fix Bug: 'ReferenceError: projectiles is not defined' in this line: 'var index = projectiles.indexOf(self);' Line Number: 25
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 < -self.width / 2 || self.x > 2048 + self.width / 2 || self.y < -self.height / 2 || self.y > 2732 + self.height / 2) self.destroy(); }; }); 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; 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 numberOfProjectiles = 0; 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(projectiles.length); 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); 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]; 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,9 @@
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 < -self.width || self.x > 2048 || self.y < -self.height || self.y > 2732) self.destroy();
+ if (self.x < -self.width / 2 || self.x > 2048 + self.width / 2 || self.y < -self.height / 2 || self.y > 2732 + self.height / 2) self.destroy();
};
});
var Target = Container.expand(function () {
var self = Container.call(this);
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.