User prompt
герой стреляет снарядами в 2 ряда
User prompt
бонус скорости не рабоате
User prompt
шанс выпадения бонуса скорости 1 к 15
User prompt
не работает бонус стрельбы
User prompt
с каждой волной метеориты двигаются быстрее
User prompt
бонус жизни добавляет герою 1 жизнь
User prompt
не работает бонусная жизнь
User prompt
не работает механика бонуса стрельбы
User prompt
добавь "бонус стрельбы", он выпадает с убитых врагов с шансом 1 к 15, время действия бонуса 10 секунд, во время действия "бонуса стрельбы" герой стреляет еще в два дополнительных направлении по диагонали влево вверх, вправо вверх; после поднятия "бонуса стрельбы" он пропадает с экрана и активируется
User prompt
из врагов может выпадать дополнительная жизнь с шансом 1 к 50, после поднятия жизни она пропадает с карты и добавляется 1 жизнь
User prompt
уменьши скорость героя
User prompt
уменьши скорость героя на 30%
User prompt
добавь физику герою
User prompt
следующая волна врагов появляется когда остается 2 врага из предыдущей волны
User prompt
количество врагов увеличивается постепенно
User prompt
добавь счетчик жизней
User prompt
интерфейс не выходит за границы эрана
User prompt
добавь в интерфейс счетчик очков и жизней
User prompt
добавь систему очков за убийство врагов
User prompt
отображать количестве жизней на экране в верхней части
User prompt
во врагов разного типа нужно разное количество попаданий для их уничтожения
User prompt
враги целятся в героя
User prompt
враги стреляю в героя, пуля летит прямо
User prompt
добобавь стреляющих врагов
User prompt
ускорь звезды на фоне
===================================================================
--- original.js
+++ change.js
@@ -1,7 +1,16 @@
/****
* Classes
****/
+// Define the EnemyBullet class
+var EnemyBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var bulletGraphics = self.createAsset('enemyBullet', 'Enemy Bullet', 0.5, 0.5);
+ self.speed = 5;
+ self.move = function () {
+ self.y += self.speed;
+ };
+});
// Define the DimStar class for stars with lower brightness
var DimStar = Container.expand(function () {
var self = Container.call(this);
var starGraphics = self.createAsset('dimStar', 'Dim Star', 0.5, 0.5);
@@ -66,11 +75,23 @@
var self = Container.call(this);
var enemyGraphics = self.createAsset('enemyType1', 'Enemy Type 1', 0.5, 0.5);
self.speed = 2;
self.health = 3;
+ self.shootInterval = 120; // Enemy shoots every 2 seconds
+ self.lastShotTick = 0; // Last tick when the enemy shot
self.move = function () {
self.y += self.speed;
};
+ self.shoot = function () {
+ if (LK.ticks - self.lastShotTick >= self.shootInterval) {
+ var newEnemyBullet = new EnemyBullet();
+ newEnemyBullet.x = self.x;
+ newEnemyBullet.y = self.y + self.height / 2;
+ game.addChild(newEnemyBullet);
+ enemyBullets.push(newEnemyBullet);
+ self.lastShotTick = LK.ticks;
+ }
+ };
});
// Define the EnemyType2 class
var EnemyType2 = Container.expand(function () {
var self = Container.call(this);
@@ -214,8 +235,9 @@
// Initialize important asset arrays
var meteors = [];
var aliens = [];
var heroBullets = [];
+var enemyBullets = [];
// Create the Space Ranger
var spaceRanger = game.addChild(new SpaceRanger());
spaceRanger.x = 2048 / 2;
spaceRanger.y = 2732 - 200; // Start position near the bottom of the screen
@@ -239,16 +261,37 @@
meteors[i].destroy();
meteors.splice(i, 1);
}
}
- // Move all aliens
+ // Move all aliens and make them shoot if they are of EnemyType1
for (var j = aliens.length - 1; j >= 0; j--) {
aliens[j].move();
+ if (aliens[j] instanceof EnemyType1) {
+ aliens[j].shoot();
+ }
if (aliens[j].y > 2732 + aliens[j].height / 2) {
aliens[j].destroy();
aliens.splice(j, 1);
}
}
+ // Move all enemy bullets
+ for (var p = enemyBullets.length - 1; p >= 0; p--) {
+ enemyBullets[p].move();
+ if (enemyBullets[p].y > 2732 + enemyBullets[p].height / 2) {
+ enemyBullets[p].destroy();
+ enemyBullets.splice(p, 1);
+ } else if (spaceRanger.intersects(enemyBullets[p])) {
+ spaceRanger.lives--;
+ livesDisplay.updateLives(spaceRanger.lives);
+ LK.effects.flashScreen(0xff0000, 500);
+ if (spaceRanger.lives <= 0) {
+ LK.showGameOver();
+ return;
+ }
+ enemyBullets[p].destroy();
+ enemyBullets.splice(p, 1);
+ }
+ }
// Move all hero bullets
for (var k = heroBullets.length - 1; k >= 0; k--) {
heroBullets[k].move();
if (heroBullets[k].y < -heroBullets[k].height / 2) {
military spaceship flies upward. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
meteorite. 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.
energy ball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
alien ship, flying saucer. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
alien spaceship heading down. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
alien spaceship heading down. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
alien spaceship heading down. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
alien spaceship heading down. 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.
lightning. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.