User prompt
Migrate to the latest version of LK
User prompt
Fix Bug: 'TypeError: requestAnimationFrame is not a function' in this line: 'requestAnimationFrame(self.update);' Line Number: 29
User prompt
improve the fps counter
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.gameInstance.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.gameInstance.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.gameInstance.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 85
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.gameInstance.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.gameInstance.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 82
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 81
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 80
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 79
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 79
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 79
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 80
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'removeEnemy')' in this line: 'self.game.removeEnemy(self);' Line Number: 80
===================================================================
--- original.js
+++ change.js
@@ -1,4 +1,7 @@
+/****
+* Classes
+****/
var FrameRateCounter = Container.expand(function () {
var self = Container.call(this);
self.lastTime = Date.now();
self.frameCount = 0;
@@ -70,11 +73,8 @@
});
var Enemy = Container.expand(function (gameInstance) {
var self = Container.call(this);
self.game = gameInstance;
- self.game = gameInstance;
- self.game = gameInstance;
- self.game = gameInstance;
var enemyGraphics = self.createAsset('enemy', 'Enemy Graphics', .5, .5);
var enemySpeed = 25.6 * 0.7 * 0.6;
self.move = function () {
self.y += enemySpeed;
@@ -99,100 +99,108 @@
self.game.removeBullet(self);
}
};
});
-var Game = Container.expand(function () {
- var self = Container.call(this);
- self.incrementScore = function () {
- self.score++;
- };
- self.removeEnemy = function (enemy) {
- var index = self.enemies.indexOf(enemy);
- if (index > -1) {
- enemy.destroy();
- self.enemies.splice(index, 1);
- }
- };
- self.removeBullet = function (bullet) {
- var index = self.bullets.indexOf(bullet);
- if (index > -1) {
- bullet.destroy();
- self.bullets.splice(index, 1);
- }
- };
- self.spawnEnemies = function () {
- self.generateEnemies();
- };
- self.generateEnemies = function () {
- self.enemiesSpawnedLastRound += 10;
- for (var i = 0; i < self.enemiesSpawnedLastRound; i++) {
- var newEnemy = new Enemy(self);
- newEnemy.x = Math.random() * 2048;
- newEnemy.y = -25 * (i + 1);
- self.enemies.push(newEnemy);
- self.addChild(newEnemy);
- }
- self.enemyCounterTxt.setText('Enemies: ' + self.enemies.length.toString());
- };
- self.updateEnemyCounter = function () {};
- self.score = 0;
- self.frameRateCounter = new FrameRateCounter();
- LK.gui.topRight.addChild(self.frameRateCounter.display);
- var enemiesSpawnedLastRound = 1;
- self.enemies = [];
- self.enemyCounterTxt = new Text2('Enemies: ' + self.enemies.length.toString(), {
- size: 150,
- fill: "#ff0000"
+
+/****
+* Initialize Game
+****/
+var game = new LK.Game({
+ backgroundColor: 0x000000
+});
+
+/****
+* Game Code
+****/
+game.incrementScore = function () {
+ game.score++;
+};
+game.removeEnemy = function (enemy) {
+ var index = game.enemies.indexOf(enemy);
+ if (index > -1) {
+ enemy.destroy();
+ game.enemies.splice(index, 1);
+ }
+};
+game.removeBullet = function (bullet) {
+ var index = game.bullets.indexOf(bullet);
+ if (index > -1) {
+ bullet.destroy();
+ game.bullets.splice(index, 1);
+ }
+};
+game.spawnEnemies = function () {
+ game.generateEnemies();
+};
+game.generateEnemies = function () {
+ game.enemiesSpawnedLastRound += 10;
+ for (var i = 0; i < game.enemiesSpawnedLastRound; i++) {
+ var newEnemy = new Enemy(game);
+ newEnemy.x = Math.random() * 2048;
+ newEnemy.y = -25 * (i + 1);
+ game.enemies.push(newEnemy);
+ game.addChild(newEnemy);
+ }
+ game.enemyCounterTxt.setText('Enemies: ' + game.enemies.length.toString());
+};
+game.updateEnemyCounter = function () {};
+game.score = 0;
+game.frameRateCounter = new FrameRateCounter();
+LK.gui.topRight.addChild(game.frameRateCounter.display);
+var enemiesSpawnedLastRound = 1;
+game.enemies = [];
+game.enemyCounterTxt = new Text2('Enemies: ' + game.enemies.length.toString(), {
+ size: 150,
+ fill: "#ff0000"
+});
+game.enemyCounterTxt.anchor.set(0, 1);
+LK.gui.bottomLeft.addChild(game.enemyCounterTxt);
+game.setBackgroundColor(0xFFFFFF);
+var towers = [];
+game.bullets = [];
+game.bulletsContainer = game.addChild(new Container());
+game.enemies = [];
+var initialTower = new Tower(game);
+initialTower.x = 0 + initialTower.width / 2 - 260;
+initialTower.y = 500 + initialTower.height / 2 + 300 + 800 + 500;
+towers.push(initialTower);
+game.addChild(initialTower);
+var plain = game.addChild(new Plain());
+plain.x = 2048 / 2;
+plain.y = 2732 / 2;
+game.addChild(plain);
+var enemy = new Enemy();
+enemy.x = 2048 / 2;
+enemy.y = -enemy.height / 2;
+game.enemies.push(enemy);
+game.addChild(enemy);
+game.on('down', function (obj) {
+ var event = obj.event;
+ var pos = event.getLocalPosition(game);
+ var newTower = new Tower(game);
+ newTower.x = pos.x;
+ newTower.y = pos.y;
+ game.addChild(newTower);
+ towers.push(newTower);
+});
+LK.on('tick', function () {
+ game.frameRateCounter.update(enemiesSpawnedLastRound);
+ if (game.enemies.length === 0) {
+ game.spawnEnemies();
+ }
+ towers.forEach(function (tower) {
+ tower.shoot(game.enemies, game.bullets);
});
- self.enemyCounterTxt.anchor.set(0, 1);
- LK.gui.bottomLeft.addChild(self.enemyCounterTxt);
- LK.stageContainer.setBackgroundColor(0xFFFFFF);
- var towers = [];
- self.bullets = [];
- self.bulletsContainer = self.addChild(new Container());
- self.enemies = [];
- var initialTower = new Tower(self);
- initialTower.x = 0 + initialTower.width / 2 - 260;
- initialTower.y = 500 + initialTower.height / 2 + 300 + 800 + 500;
- towers.push(initialTower);
- self.addChild(initialTower);
- var plain = self.addChild(new Plain());
- plain.x = 2048 / 2;
- plain.y = 2732 / 2;
- self.addChild(plain);
- var enemy = new Enemy();
- enemy.x = 2048 / 2;
- enemy.y = -enemy.height / 2;
- self.enemies.push(enemy);
- self.addChild(enemy);
- stage.on('down', function (obj) {
- var event = obj.event;
- var pos = event.getLocalPosition(self);
- var newTower = new Tower(self);
- newTower.x = pos.x;
- newTower.y = pos.y;
- self.addChild(newTower);
- towers.push(newTower);
+ var activeEnemies = game.enemies.filter(function (enemy) {
+ return enemy.y < 2732;
});
- LK.on('tick', function () {
- self.frameRateCounter.update(enemiesSpawnedLastRound);
- if (self.enemies.length === 0) {
- self.spawnEnemies();
- }
- towers.forEach(function (tower) {
- tower.shoot(self.enemies, self.bullets);
- });
- var activeEnemies = self.enemies.filter(function (enemy) {
- return enemy.y < 2732;
- });
- activeEnemies.forEach(function (enemy) {
- enemy.move();
- });
- var activeBullets = self.bullets.filter(function (bullet) {
- return bullet.x < 2048;
- });
- activeBullets.forEach(function (bullet) {
- bullet.update();
- });
- self.bullets = activeBullets;
+ activeEnemies.forEach(function (enemy) {
+ enemy.move();
});
-});
+ var activeBullets = game.bullets.filter(function (bullet) {
+ return bullet.x < 2048;
+ });
+ activeBullets.forEach(function (bullet) {
+ bullet.update();
+ });
+ game.bullets = activeBullets;
+});
\ No newline at end of file
A plain in a comic style with a dirt road with 4 turn staring to top to the botom see from a top and 50 meter high view Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A tower shooting at enemy in a modern style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A single soldat walking downard in a 16 bit style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.