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: self.checkBulletCollisions is not a function' in this line: 'self.checkBulletCollisions(i);' Line Number: 213
User prompt
Improve fluidity 5 time
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'now')' in this line: 'var currentTime = performance.now();' Line Number: 15
User prompt
Make the framerate accurate
User prompt
Fix the framerate counter to be acurate
User prompt
Improve fluidity
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'intersects')' in this line: 'if (self.bullets[i].intersects(self.enemies[j])) {' Line Number: 195
User prompt
Increment the enemy number by 50 the second round and by 1 all round after that
User prompt
Improve fluidity
User prompt
Improve fluidity
User prompt
Improve fluidity
User prompt
Improve fluidity
User prompt
The tower start firing at the begining
User prompt
Fix tower nit firing
User prompt
Fix bullet not apairing
User prompt
Fix fluidity
User prompt
Fixe the fire of the bullet
User prompt
Fix
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'gameInstance.destroyEnemy(self);' Line Number: 75
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'self.game.destroyEnemy(self);' Line Number: 75
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'self.game.destroyEnemy(self);' Line Number: 75
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'self.game.destroyEnemy(self);' Line Number: 75
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'gameInstance.destroyEnemy(self);' Line Number: 75
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'destroyEnemy')' in this line: 'self.game.destroyEnemy(self);' Line Number: 75
var FrameRateCounter = Container.expand(function () {
var self = Container.call(this);
self.lastTime = Date.now();
self.frameCount = 0;
self.framerate = 0;
self.display = new Text2('FPS: 0', {
size: 150,
fill: '#000000'
});
self.display.anchor.set(1, 0);
self.updateDisplay = function () {
self.display.setText('FPS: ' + Math.round(self.framerate).toString());
};
self.update = function () {
var currentTime = Date.now();
self.frameCount++;
var elapsedTime = (currentTime - self.lastTime) / 1000;
if (elapsedTime >= 1) {
self.framerate = self.frameCount / elapsedTime;
self.updateDisplay();
self.frameCount = 0;
self.lastTime = currentTime;
}
};
});
var Plain = Container.expand(function () {
var self = Container.call(this);
var plainGraphics = self.createAsset('correct_plain_asset_id', 'Correct Plain Graphics Description', .5, .5);
plainGraphics.scale.x = 2;
plainGraphics.scale.y = 2;
plainGraphics.alpha = 0;
self.shoot = function (enemies, bulletsContainer) {
if (self.cooldownTimer <= 0 && enemies.length > 0) {
var bullet = new Bullet(self);
bullet.x = self.x;
bullet.y = self.y;
bulletsContainer.addChild(bullet);
self.cooldownTimer = self.cooldown;
}
self.cooldownTimer--;
};
});
var Tower = Container.expand(function (gameInstance) {
var self = Container.call(this);
self.game = gameInstance;
var towerGraphics = self.createAsset('tower', 'Tower Graphics', .5, .5);
self.cooldown = 0.625 / 0.7 * (1 / 0.6) * 1.3;
self.cooldownTimer = 0;
self.shoot = function (enemies, bullets) {
this.handleShooting(enemies, bullets);
};
self.handleShooting = function (enemies, bullets) {
self.cooldownTimer--;
if (self.cooldownTimer <= 0 && enemies.length > 0) {
self.fireBullet(bullets);
}
};
self.fireBullet = function (bullets) {
var bullet = new Bullet(self.game);
bullet.x = self.x;
bullet.y = self.y;
gameInstance.bulletsContainer.addChild(bullet);
gameInstance.bullets.push(bullet);
self.cooldownTimer = self.cooldown;
};
});
var Enemy = Container.expand(function (gameInstance) {
var self = Container.call(this);
self.game = gameInstance;
var enemyGraphics = self.createAsset('enemy', 'Enemy Graphics', .5, .5);
var enemySpeed = 25.6 * 0.7 * 0.6;
self.update = function () {
self.y += enemySpeed;
if (self.y > 2732) {
gameInstance.destroyEnemy(self);
}
};
});
var Bullet = Container.expand(function (gameInstance) {
var self = Container.call(this);
self.game = gameInstance;
var bulletGraphics = self.createAsset('bullet', 'Bullet Graphics', .5, .5);
self.speed = 240;
self.update = function () {
self.y -= self.speed;
if (self.y < 0) {
self.game.removeBullet(self);
self.destroy();
}
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
self.destroyEnemy = function (enemy) {
var index = self.enemies.indexOf(enemy);
if (index > -1) {
self.enemies.splice(index, 1);
enemy.destroy();
}
};
self.removeBullet = function (bullet) {
var index = self.bullets.indexOf(bullet);
if (index > -1) {
self.bullets.splice(index, 1);
}
};
self.removeEnemy = function (enemy) {
var index = self.enemies.indexOf(enemy);
if (index > -1) {
self.enemies.splice(index, 1);
}
};
self.incrementScore = function () {
self.score++;
};
self.spawnEnemies = function () {
this.generateEnemies();
};
self.generateEnemies = function () {
enemiesSpawnedLastRound += 4;
for (var i = 0; i < enemiesSpawnedLastRound; i++) {
var newEnemy = new Enemy();
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"
});
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);
});
LK.on('tick', function () {
self.frameRateCounter.update(enemiesSpawnedLastRound);
if (self.enemies.length === 0) {
self.spawnEnemies();
} else {
towers.forEach(function (tower) {
tower.shoot(self.enemies, self.bullets);
});
}
self.enemies.forEach(function (enemy) {
enemy.update();
});
self.bullets.forEach(function (bullet) {
bullet.update();
self.enemies.forEach(function (enemy, enemyIndex) {
if (bullet.intersects(enemy)) {
self.incrementScore();
self.removeBullet(bullet);
self.removeEnemy(enemy);
}
});
});
});
});
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.