User prompt
Сделай так чтоб при убийство 10 врагов их количество удваивается
User prompt
Сделай так чтоб при убийстве игры усложняеться
User prompt
Уменьшить скорострельность героя на минимум
User prompt
Босс это четыре класса первый корпус просто есть второму лазер стреляет лазермом в после окончание атаки лазером он нагревается и его можно атаковать турель стреляет медленно в героя если три раза встретить в турель она отключиться вторая турель такакже как и первая
User prompt
Верни старую скорострельность
User prompt
Сделай так чтоб скоростленость повышалось только при улучшение
User prompt
Сделай так чтобы при событие призыв босса появлялся Босс.Босс это враг больших размеров который с верху экрана у которого 4 части две турели которые медленно стреляют по тебе корпус и лазер по середине которай стреляет в определëный момент к лучу нельзя прикасаться как и пулям турелей когда луч пергреваеться после выстрела ты можешь атаковать его по лазеру после 15 попаданец лазер взраветься и босс умирает а герою дают два улучшений
User prompt
Добавь случайно е событие призав босса
User prompt
Добавь к улучшению повышеную скорость атаки
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'bind')' in or related to this line: 'var powerUpFunctions = [hero.enableDoubleShot.bind(hero), hero.enablePiercingShot.bind(hero), hero.enableAllySupport.bind(hero)];' Line Number: 188
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'call')' in or related to this line: 'powerUpFunctions[randomIndex].call(hero);' Line Number: 190
User prompt
Сделай так чтоб улучшения случайно выбирались
User prompt
При убийстве 5 врагов даться случайное улучшение две пули за раз которые летят в разные стороны или при убийстве врага пуля проходила на сквозь и убивала заднего врага или чтоб игра закончилась нужно два столкновений или союзник который убивает врагов пять секунд
User prompt
Сделай таблицу рекордов
User prompt
Отображай наибольшее количество убитых врагов в счётчике
User prompt
Сделай так чтоб при убийстве врага к датчику прибавлялось число один
User prompt
Сделай так чтоб количество убитых врагов отображались на датчике
User prompt
Сделай рабочей секундомер который показывает сколько секунд прошло
User prompt
Сделай так чтобы Таймер добовляет +1 каждую секунду
User prompt
Таймер равен количеству выстрелов героя
User prompt
Сделай изменения значения в секундах
User prompt
Замени значение NaN на секунду и минуты в цыврах
User prompt
Сделай так чтоб таймер показывал секунды после начала игры
User prompt
Сделай так чтоб таймер показывал секунды
/****
* Classes
****/
// Laser class for the boss
var Laser = Container.expand(function () {
var self = Container.call(this);
var laserGraphics = self.attachAsset('enemy', {
width: 20,
height: 2732,
color: 0xff0000,
shape: 'box',
anchorX: 0.5,
anchorY: 0
});
self.overheated = false;
self.update = function () {
if (!self.overheated && LK.ticks % 300 == 0) {
self.shootLaser();
LK.setTimeout(function () {
self.overheated = true;
}, 5000);
}
if (self.overheated) {
LK.setTimeout(function () {
self.overheated = false;
}, 10000);
}
};
self.shootLaser = function () {
self.overheated = true;
LK.setTimeout(function () {
self.overheated = false;
}, 5000);
};
});
// Turret class for the boss
var Turret = Container.expand(function () {
var self = Container.call(this);
self.hitCount = 0;
var turretGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.shoot = function () {
if (self.hitCount < 3 && LK.ticks % 120 == 0) {
var bullet = new EnemyBullet();
bullet.x = self.x;
bullet.y = self.y;
enemyBullets.push(bullet);
game.addChild(bullet);
}
};
self.update = function () {
self.shoot();
};
self.registerHit = function () {
self.hitCount++;
if (self.hitCount >= 3) {
self.destroy();
}
};
});
// Hero class
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.attachAsset('hero', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
this.enableAllySupport = function () {
var ally = new Ally();
ally.x = this.x;
ally.y = this.y - 100;
game.addChild(ally);
LK.setTimeout(function () {
ally.destroy();
}, 5000);
};
this.enableDoubleShot = function () {
this.doubleShotEnabled = true;
LK.setTimeout(function () {
this.doubleShotEnabled = false;
}, 10000);
};
this.enablePiercingShot = function () {
this.piercingShotEnabled = true;
LK.setTimeout(function () {
this.piercingShotEnabled = false;
}, 5000);
};
this.increaseBulletSpeed = function () {
LK.setTimeout(function () {
HeroBullet.prototype.speed = -10;
}, 0);
LK.setTimeout(function () {
HeroBullet.prototype.speed = -5;
}, 10000);
};
};
self.shoot = function () {
if (this.doubleShotEnabled) {
var bulletLeft = new HeroBullet();
bulletLeft.x = this.x - 20;
bulletLeft.y = this.y;
heroBullets.push(bulletLeft);
game.addChild(bulletLeft);
var bulletRight = new HeroBullet();
bulletRight.x = this.x + 20;
bulletRight.y = this.y;
heroBullets.push(bulletRight);
game.addChild(bulletRight);
} else {
var bullet = new HeroBullet();
bullet.x = this.x;
bullet.y = this.y;
heroBullets.push(bullet);
game.addChild(bullet);
}
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Updated logic for enemies to move towards the player's hero
self.y += 3 + Math.floor(LK.getScore() / 10); // Enemies speed up as the score increases
};
self.shoot = function () {
// Removed shooting logic so enemies will ram the player
};
});
// Bullet class for hero
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('heroBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -5;
self.move = function () {
self.move = function () {
self.y += self.speed;
if (this.piercingShotEnabled) {
for (var i = enemies.length - 1; i >= 0; i--) {
if (this.intersects(enemies[i])) {
enemies[i].destroy();
enemies.splice(i, 1);
LK.setScore(LK.getScore() + 1);
scoreText.setText(LK.getScore().toString());
}
}
}
};
self.enablePiercingShot = function () {
this.piercingShotEnabled = true;
};
};
});
// Bullet class for enemies
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.move = function () {
self.y += self.speed;
};
});
var Ally = Container.expand(function () {
var self = Container.call(this);
var allyGraphics = self.attachAsset('hero', {
// Reuse hero asset for ally
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
if (LK.ticks % 60 == 0) {
var bullet = new HeroBullet();
bullet.x = this.x;
bullet.y = this.y;
bullet.enablePiercingShot();
heroBullets.push(bullet);
game.addChild(bullet);
}
};
});
// Boss class with turrets and a central laser
var Boss = Container.expand(function () {
var self = Container.call(this);
self.health = 10;
self.laserHeat = 0;
self.turrets = [];
self.laser = null;
// Initialize turrets and laser
self.initComponents = function () {
// Create turrets
for (var i = 0; i < 2; i++) {
var turret = new Turret();
turret.x = i === 0 ? self.x - 50 : self.x + 50;
turret.y = self.y + 25;
self.turrets.push(turret);
game.addChild(turret);
}
// Create central laser
self.laser = new Laser();
self.laser.x = self.x;
self.laser.y = self.y + 50;
game.addChild(self.laser);
};
self.update = function () {
self.y += 2;
// Update turrets
self.turrets.forEach(function (turret) {
turret.update();
});
// Update laser
self.laser.update();
};
self.initComponents();
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Define assets for the hero, enemies, and bullets
// Initialize hero
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
hero.y = 2732 - 150;
// Initialize score display
var scoreText = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Initialize enemies and bullets arrays
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
// Game tick event
LK.on('tick', function () {
// Update hero
hero.update();
// Update all enemies
for (var i = enemies.length - 1; i >= 0; i--) {
enemies[i].update();
// End game when hero collides with an enemy
if (enemies[i].intersects(hero)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
// Check for enemy off-screen
if (enemies[i].y > 2732) {
enemies[i].destroy();
enemies.splice(i, 1);
}
}
// Update all hero bullets
for (var j = heroBullets.length - 1; j >= 0; j--) {
heroBullets[j].move();
// Check for bullet off-screen or collision with enemies
for (var i = enemies.length - 1; i >= 0; i--) {
if (heroBullets[j].intersects(enemies[i])) {
enemies[i].destroy();
enemies.splice(i, 1);
// Increment score and update display
LK.setScore(LK.getScore() + 1);
if (LK.getScore() % 5 === 0) {
var powerUpFunctions = [hero.enableDoubleShot.bind(hero), hero.enablePiercingShot.bind(hero), hero.enableAllySupport.bind(hero), hero.increaseBulletSpeed.bind(hero)];
var randomIndex = Math.floor(Math.random() * powerUpFunctions.length);
powerUpFunctions[randomIndex].call(hero);
}
scoreText.setText(LK.getScore().toString());
heroBullets[j].destroy();
heroBullets.splice(j, 1);
break; // Exit the loop after destroying the bullet to avoid errors
}
}
if (heroBullets[j] && heroBullets[j].y < 0) {
heroBullets[j].destroy();
heroBullets.splice(j, 1);
}
}
// Update all enemy bullets
for (var k = enemyBullets.length - 1; k >= 0; k--) {
enemyBullets[k].move();
// Check for bullet off-screen or collision with hero
if (enemyBullets[k].y > 2732) {
enemyBullets[k].destroy();
enemyBullets.splice(k, 1);
}
if (enemyBullets[k] && enemyBullets[k].intersects(hero)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
// Hero shooting logic
if (LK.ticks % 60 == 0) {
var bullet = new HeroBullet();
bullet.x = hero.x;
bullet.y = hero.y;
heroBullets.push(bullet);
game.addChild(bullet);
}
// Enemy spawning logic with doubling the number after every 10 kills
var enemySpawnMultiplier = Math.pow(2, Math.floor(LK.getScore() / 10));
var enemySpawnRate = 240 - Math.floor(LK.getScore() / 20) * 30;
enemySpawnRate = Math.max(enemySpawnRate, 60); // Ensure there's a minimum spawn rate
if (LK.ticks % enemySpawnRate == 0) {
for (var spawnIndex = 0; spawnIndex < enemySpawnMultiplier; spawnIndex++) {
var enemy = new Enemy();
enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2;
enemy.y = -enemy.height;
enemies.push(enemy);
game.addChild(enemy);
}
}
// Enemy shooting logic
});
// Touch event handling for hero movement
game.on('down', function (obj) {
var touchPos = obj.event.getLocalPosition(game);
hero.x = touchPos.x;
hero.y = touchPos.y;
});
game.on('move', function (obj) {
if (obj.event.target === hero) {
var touchPos = obj.event.getLocalPosition(game);
hero.x = touchPos.x;
hero.y = touchPos.y;
}
});
game.on('up', function (obj) {
// Stop moving the hero when touch ends
}); ===================================================================
--- original.js
+++ change.js
@@ -318,17 +318,20 @@
bullet.y = hero.y;
heroBullets.push(bullet);
game.addChild(bullet);
}
- // Enemy spawning logic with random boss summoning event
+ // Enemy spawning logic with doubling the number after every 10 kills
+ var enemySpawnMultiplier = Math.pow(2, Math.floor(LK.getScore() / 10));
var enemySpawnRate = 240 - Math.floor(LK.getScore() / 20) * 30;
enemySpawnRate = Math.max(enemySpawnRate, 60); // Ensure there's a minimum spawn rate
if (LK.ticks % enemySpawnRate == 0) {
- var enemy = new Enemy();
- enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2;
- enemy.y = -enemy.height;
- enemies.push(enemy);
- game.addChild(enemy);
+ for (var spawnIndex = 0; spawnIndex < enemySpawnMultiplier; spawnIndex++) {
+ var enemy = new Enemy();
+ enemy.x = Math.random() * (2048 - enemy.width) + enemy.width / 2;
+ enemy.y = -enemy.height;
+ enemies.push(enemy);
+ game.addChild(enemy);
+ }
}
// Enemy shooting logic
});
// Touch event handling for hero movement
Космолет с оружием и видом с верху. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Космический булыжниклетящий и круживщейся вокруг своей оси С видом с верха. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Космический патрон смотрящий прямо. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.