Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: parent is undefined' in this line: 'console.log(parent.level);' Line Number: 29
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: this.parent is null' in this line: 'console.log(this.parent.level);' Line Number: 29
Code edit (1 edits merged)
Please save this source code
User prompt
When target is created, set its initial speed to 4+level (variable from the Game class)
User prompt
Fix Bug: 'ReferenceError: speed is not defined' in this line: 'self.speed = speed;' Line Number: 29
User prompt
When creating a new Target, make it's speed = level + 4, and limiti the speed to 9.
Code edit (4 edits merged)
Please save this source code
User prompt
When generating targets, if level is > 2, their possible directions should be not upd/down/right/left, but also diagonal.
User prompt
When generating targets, if level is > 1, make their speeds a bit different. Add a random variation of +/- 10%
Code edit (1 edits merged)
Please save this source code
User prompt
When player has no touches left, immediately flash the text field touches left for 1 second
User prompt
When player has no touches left, flash the text field touches left for 1 second
Code edit (1 edits merged)
Please save this source code
User prompt
When new level starts, empty projectiles array.
Code edit (1 edits merged)
Please save this source code
User prompt
Before calling game over, wait 1 second
User prompt
On every tick check if projectiles.length is equal to 0. If it is, AND the number of touches left is also zero, game is over
Code edit (1 edits merged)
Please save this source code
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
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; }; }); 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); }; LK.on('tick', function () { if (projectiles.length === 0 && self.touchesLeft === 0) { touchesLeftText.setStyle({ fill: '#ff0000' }); var flashTimeout = LK.setTimeout(function () { touchesLeftText.setStyle({ fill: '#ffffff' }); }, 500); LK.setTimeout(function () { LK.clearTimeout(flashTimeout); LK.showGameOver(); }, 1000); } 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) { if (self.children[i].x < 0 || self.children[i].x > 2048 || self.children[i].y < 0 || self.children[i].y > 2732) { var index1 = projectiles.indexOf(self.children[i]); if (index1 > -1) { projectiles.splice(index1, 1); self.numberOfProjectiles--; self.children[i].destroy(); } } } 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); projectiles = []; 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
@@ -101,9 +101,18 @@
self.addChild(enemy);
};
LK.on('tick', function () {
if (projectiles.length === 0 && self.touchesLeft === 0) {
+ touchesLeftText.setStyle({
+ fill: '#ff0000'
+ });
+ var flashTimeout = LK.setTimeout(function () {
+ touchesLeftText.setStyle({
+ fill: '#ffffff'
+ });
+ }, 500);
LK.setTimeout(function () {
+ LK.clearTimeout(flashTimeout);
LK.showGameOver();
}, 1000);
}
for (var i = 0; i < targets.length; i++) {
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.