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.