User prompt
add autoupgrade for players (randomly, every 100 points, yes add points (enemy = 1pt, enemy2 = 3pts, enemy3 = 5pts) and each upgrades are: fire rate +0.1 bullets/second, bullet damage +1
User prompt
add wave3
User prompt
and when player's bullet hits enemy3, -10HP for enemy3
User prompt
make enemy3 has HP (20)
User prompt
make it 2 waves (wave 1:basic, wave 2 harder)
User prompt
make mgbullet if hits player, -5HP and enemy3 have 1/5 player's HP (know that player bullet atk =10hp)
User prompt
make enemy3 HP = 20 (take 2 player's bullet to shoot it down) and enemy3 bullet ATK = 5HP cuz it's so crazy
User prompt
add enemy3 shooting MG bullet (2 bullets/second) and bullet texture = mgbullet
User prompt
add enemy2 (shoot bullets, 2 bullets/shoot, ATK = 5 HP) and its HP = 20 (player ATK=10)
User prompt
make the enemy's bullet moves like player's bullet
User prompt
bug in downwards, but upwards it's stable, horrible
User prompt
enemy shoot downwards
User prompt
player just can shoot upwards, and you did it for the enemy, but up side down
User prompt
no, I mean the enemy not player
User prompt
bullet moves too (just go down)
User prompt
make enemy fire rate = 0.5 bullet/second and can shoot in the range in the camera
User prompt
add showing HP and each plane shoots the player AND just shoot when they're alive
User prompt
make enemies shoot entirely like player
User prompt
not opposite towards the player's side and enemy shoots like player shoot direction
User prompt
enemy bullets won't target towards player but towards the opposite (player's side, bullet is the same)
User prompt
plane HP =100, each bullet -10HP and the bullet shoots towards the player just like how player shoots
User prompt
enemy planes can shoot 0.25 bullets/second
Initial prompt
Plane field war
/**** * Classes ****/ // Bullet class for bullets fired by the player's plane var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -15; self.update = function () { self.y += self.speed; }; }); // Enemy class for enemy planes var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.y += self.speed; }; }); // Enemy2 class for a stronger enemy type var Enemy2 = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy2', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.hp = 20; // Set HP for Enemy2 self.update = function () { self.y += self.speed; }; }); // Enemy3 class for a machine gun shooting enemy var Enemy3 = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy3', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.hp = 20; // Set HP for Enemy3 self.update = function () { self.y += self.speed; }; }); //<Assets used in the game will automatically appear here> // EnemyBullet class for bullets fired by enemy planes var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.speedX = 0; self.speedY = self.speed; self.update = function () { self.y += self.speed; }; }); // MGBullet class for machine gun bullets fired by Enemy3 var MGBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('mgbullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { self.y += self.speed; }; }); // Plane class representing the player's plane var Plane = Container.expand(function () { var self = Container.call(this); var planeGraphics = self.attachAsset('plane', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.hp = 100; // Add HP property to Plane self.update = function () { // Plane update logic, if any }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // Function to spawn Enemy3 function spawnEnemy3() { var enemy3 = new Enemy3(); enemy3.hp = 20; // Set Enemy3 HP to 20 enemy3.x = Math.random() * 2048; enemy3.y = -50; enemies.push(enemy3); game.addChild(enemy3); var shootInterval = LK.setInterval(function () { if (enemies.includes(enemy3)) { fireMGBullets(enemy3); } else { LK.clearInterval(shootInterval); } }, 500); // Fire 2 bullets per second } // Function to fire MG bullets from Enemy3 function fireMGBullets(enemy3) { var bullet = new MGBullet(); bullet.attackPower = 5; // Set attack power for MGBullet bullet.x = enemy3.x; bullet.y = enemy3.y + 50; enemyBullets.push(bullet); game.addChild(bullet); } // Function to spawn Enemy2 function spawnEnemy2() { var enemy2 = new Enemy2(); enemy2.x = Math.random() * 2048; enemy2.y = -50; enemies.push(enemy2); game.addChild(enemy2); var shootInterval = LK.setInterval(function () { if (enemies.includes(enemy2)) { fireEnemy2Bullets(enemy2); } else { LK.clearInterval(shootInterval); } }, 2000); } // Function to fire two bullets from Enemy2 function fireEnemy2Bullets(enemy2) { for (var i = -1; i <= 1; i += 2) { var bullet = new EnemyBullet(); bullet.x = enemy2.x + i * 20; // Offset bullets to the sides bullet.y = enemy2.y + 50; bullet.speedX = i * 2; // Slight horizontal speed for spread bullet.speedY = 5; enemyBullets.push(bullet); game.addChild(bullet); } } // Initialize player plane var playerPlane = game.addChild(new Plane()); playerPlane.x = 2048 / 2; playerPlane.y = 2732 - 200; // Display player HP var hpText = new Text2('HP: ' + playerPlane.hp, { size: 50, fill: "#ffffff" }); hpText.anchor.set(0.5, 0); LK.gui.topLeft.addChild(hpText); // Arrays to keep track of bullets and enemies var bullets = []; var enemyBullets = []; var enemies = []; // Variables for player upgrades var fireRate = 1; // Bullets per second var bulletDamage = 10; // Damage per bullet // Function to handle player movement function handleMove(x, y, obj) { playerPlane.x = x; playerPlane.y = y; } // Function to spawn enemies function spawnEnemy() { var enemy = new Enemy(); enemy.x = Math.random() * 2048; enemy.y = -50; enemies.push(enemy); game.addChild(enemy); var shootInterval = LK.setInterval(function () { if (enemies.includes(enemy)) { fireEnemyBullet(enemy); } else { LK.clearInterval(shootInterval); } }, 2000); } // Function to fire bullets function fireEnemyBullet(enemy) { var bullet = new EnemyBullet(); bullet.x = enemy.x; bullet.y = enemy.y + 50; // Set enemy bullet speed to move downwards bullet.speedX = 0; bullet.speedY = 5; // Ensure bullet moves downwards enemyBullets.push(bullet); game.addChild(bullet); } function fireBullet() { var bullet = new Bullet(); bullet.x = playerPlane.x; bullet.y = playerPlane.y - 50; bullet.damage = bulletDamage; // Set bullet damage bullets.push(bullet); game.addChild(bullet); } // Game update loop game.update = function () { // Update enemy bullets for (var i = enemyBullets.length - 1; i >= 0; i--) { enemyBullets[i].update(); if (enemyBullets[i].y > 2732) { enemyBullets[i].destroy(); enemyBullets.splice(i, 1); } } // Update bullets for (var i = bullets.length - 1; i >= 0; i--) { bullets[i].update(); if (bullets[i].y < -50) { bullets[i].destroy(); bullets.splice(i, 1); } } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (enemies[j].y > 2732) { enemies[j].destroy(); enemies.splice(j, 1); } } // Check for collisions between player plane and enemy bullets for (var i = enemyBullets.length - 1; i >= 0; i--) { if (playerPlane.intersects(enemyBullets[i])) { if (enemyBullets[i] instanceof MGBullet) { playerPlane.hp -= 5; // Decrease player HP by 5 when hit by MGBullet } else { playerPlane.hp -= 10; // Decrease player HP by 10 for other enemy bullets } enemyBullets[i].destroy(); enemyBullets.splice(i, 1); // Update HP display hpText.setText('HP: ' + playerPlane.hp); // Game over when player HP is 0 if (playerPlane.hp <= 0) { LK.showGameOver(); } } } // Auto-upgrade system if (LK.getScore() >= 100 && LK.getScore() % 100 === 0) { var upgradeType = Math.random() < 0.5 ? 'fireRate' : 'bulletDamage'; if (upgradeType === 'fireRate') { fireRate += 0.1; // Increase fire rate } else { bulletDamage += 1; // Increase bullet damage } } // Check for collisions for (var k = bullets.length - 1; k >= 0; k--) { for (var l = enemies.length - 1; l >= 0; l--) { if (bullets[k].intersects(enemies[l])) { bullets[k].destroy(); bullets.splice(k, 1); if (enemies[l] instanceof Enemy3) { enemies[l].hp -= 10; if (enemies[l].hp <= 0) { enemies[l].destroy(); enemies.splice(l, 1); LK.setScore(LK.getScore() + 5); // Add 5 points for destroying Enemy3 } } else if (enemies[l] instanceof Enemy2) { enemies[l].destroy(); enemies.splice(l, 1); LK.setScore(LK.getScore() + 3); // Add 3 points for destroying Enemy2 } else { enemies[l].destroy(); enemies.splice(l, 1); LK.setScore(LK.getScore() + 1); // Add 1 point for destroying Enemy } break; } } } }; // Set up event listeners game.move = handleMove; game.down = function (x, y, obj) { handleMove(x, y, obj); fireBullet(); LK.setInterval(fireBullet, 1000 / fireRate); // Adjust firing interval based on fire rate }; // Wave management var currentWave = 1; var waveInterval = LK.setInterval(function () { if (currentWave === 1) { // Wave 1: Basic enemies LK.setInterval(spawnEnemy, 2000); } else if (currentWave === 2) { // Wave 2: Harder enemies LK.setInterval(spawnEnemy2, 5000); // Spawn Enemy2 every 5 seconds LK.setInterval(spawnEnemy3, 3000); // Spawn Enemy3 every 3 seconds } currentWave++; if (currentWave === 3) { // Wave 3: Even more challenging enemies LK.setInterval(spawnEnemy2, 3000); // Spawn Enemy2 every 3 seconds LK.setInterval(spawnEnemy3, 2000); // Spawn Enemy3 every 2 seconds } if (currentWave > 3) { LK.clearInterval(waveInterval); } }, 10000); // Change wave every 10 seconds
===================================================================
--- original.js
+++ change.js
@@ -168,8 +168,11 @@
// Arrays to keep track of bullets and enemies
var bullets = [];
var enemyBullets = [];
var enemies = [];
+// Variables for player upgrades
+var fireRate = 1; // Bullets per second
+var bulletDamage = 10; // Damage per bullet
// Function to handle player movement
function handleMove(x, y, obj) {
playerPlane.x = x;
playerPlane.y = y;
@@ -203,8 +206,9 @@
function fireBullet() {
var bullet = new Bullet();
bullet.x = playerPlane.x;
bullet.y = playerPlane.y - 50;
+ bullet.damage = bulletDamage; // Set bullet damage
bullets.push(bullet);
game.addChild(bullet);
}
// Game update loop
@@ -250,8 +254,17 @@
LK.showGameOver();
}
}
}
+ // Auto-upgrade system
+ if (LK.getScore() >= 100 && LK.getScore() % 100 === 0) {
+ var upgradeType = Math.random() < 0.5 ? 'fireRate' : 'bulletDamage';
+ if (upgradeType === 'fireRate') {
+ fireRate += 0.1; // Increase fire rate
+ } else {
+ bulletDamage += 1; // Increase bullet damage
+ }
+ }
// Check for collisions
for (var k = bullets.length - 1; k >= 0; k--) {
for (var l = enemies.length - 1; l >= 0; l--) {
if (bullets[k].intersects(enemies[l])) {
@@ -261,12 +274,18 @@
enemies[l].hp -= 10;
if (enemies[l].hp <= 0) {
enemies[l].destroy();
enemies.splice(l, 1);
+ LK.setScore(LK.getScore() + 5); // Add 5 points for destroying Enemy3
}
+ } else if (enemies[l] instanceof Enemy2) {
+ enemies[l].destroy();
+ enemies.splice(l, 1);
+ LK.setScore(LK.getScore() + 3); // Add 3 points for destroying Enemy2
} else {
enemies[l].destroy();
enemies.splice(l, 1);
+ LK.setScore(LK.getScore() + 1); // Add 1 point for destroying Enemy
}
break;
}
}
@@ -276,8 +295,9 @@
game.move = handleMove;
game.down = function (x, y, obj) {
handleMove(x, y, obj);
fireBullet();
+ LK.setInterval(fireBullet, 1000 / fireRate); // Adjust firing interval based on fire rate
};
// Wave management
var currentWave = 1;
var waveInterval = LK.setInterval(function () {
a fighter plane. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
MG bullet 2D(flat and have colors). Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a flat fighter plane. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A fighter plane. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A stronger fighter plane. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
MG bullet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
oil barrel. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
an ATGM. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.