User prompt
в каждой новой волне врагов, количества врагов увеличивается на 1
User prompt
новая волна не появляется пока не убиты враги прошлой волны
User prompt
волны появления зомби по 10, каждая последующая волна + 1 враг
User prompt
зомби появляются с меньшей интенсивностью
User prompt
увеличь скорость стрельбы
User prompt
добавь задний фон, болото
User prompt
при управлении игрок стоит на месте, а карта прокручивается под ним
User prompt
зомби появляются не волнами а бесконечно
User prompt
скорость стрельбы увеличивается с каждой новой волной, скорость стрельбы не увеливается от убийства врагов
User prompt
сделай волны зомби, каждый этап новый этап зомби на 20% больше и они на 1% быстрее двигаются в каждой волне
User prompt
враги стремятся к герою
User prompt
уменьши количество выпускаемых пуль, и увеличь скорость полета пуль
User prompt
с каждым убитым врагом увеличивается скорочть стрельбы и скорость респавна врагов
User prompt
выведи счетчик убитых врагов на экран
User prompt
добавь в интерфевейс количество жизней
User prompt
у игрока три жизни, если враг коснется игрока, то одна жизнь исчезает, если жизни заканчиватюся - игрок игрок умирает
User prompt
стреляют автоматически в направлении ближайшего к игроку врага
User prompt
пули убивают врагов
User prompt
игрок постоянно следует за мышкой
User prompt
игрок двигается мышью
Initial prompt
battle of the hordes
===================================================================
--- original.js
+++ change.js
@@ -83,22 +83,29 @@
// Initialize enemies and bullets arrays
var enemies = [];
var bullets = [];
-// Initialize firing rate and enemy spawn rate
+// Initialize firing rate, enemy spawn rate, and wave system
var firingRate = 60; // Decreased firing rate (ticks)
var spawnRate = 120; // Initial enemy spawn rate (ticks)
+var waveCount = 0; // Number of waves that have passed
+var enemiesPerWave = 5; // Base number of enemies per wave
+var enemySpeedIncrease = 0.01; // Speed increase per wave
var score = 0; // Global score variable
// Function to spawn enemies
function spawnEnemy() {
- var angle = Math.random() * Math.PI * 2; // Random angle
- var radius = 1200; // Spawn circle radius
- var enemy = new Enemy();
- enemy.x = 1024 + radius * Math.cos(angle);
- enemy.y = 1366 + radius * Math.sin(angle);
- enemies.push(enemy);
- game.addChild(enemy);
+ var enemiesToSpawn = Math.ceil(enemiesPerWave * (1 + 0.2 * waveCount));
+ for (var i = 0; i < enemiesToSpawn; i++) {
+ var angle = Math.random() * Math.PI * 2; // Random angle
+ var radius = 1200; // Spawn circle radius
+ var enemy = new Enemy();
+ enemy.speed += enemy.speed * waveCount * enemySpeedIncrease; // Increase speed by 1% per wave
+ enemy.x = 1024 + radius * Math.cos(angle);
+ enemy.y = 1366 + radius * Math.sin(angle);
+ enemies.push(enemy);
+ game.addChild(enemy);
+ }
}
// Function to fire a bullet
function fireBullet() {
@@ -172,11 +179,13 @@
enemies.splice(j, 1);
}
}
- // Spawn enemies
- if (LK.ticks % spawnRate === 0) {
+ // Spawn enemies and handle wave progression
+ if (enemies.length === 0 && LK.ticks % spawnRate === 0) {
spawnEnemy();
+ waveCount++;
+ spawnRate = Math.max(30, spawnRate - 5); // Decrease spawn rate by 5 ticks to a minimum of 30 ticks
}
// Fire bullets
if (LK.ticks % firingRate === 0) {
hero with a gun, shoots forward, top view, topdown. Single Game Texture. In-Game asset. 2d.TopDown. Blank background. High contrast. No shadows.
metal ball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A fireball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
heart. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
zombie kamikaze, vertical top view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
opponent for the game, zombie kamikaze, vertical top view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.