User prompt
A-10 kan inte droppa bomber
User prompt
Selot Enemi 4
User prompt
B-2 drakar bomber och åker ner
User prompt
Fiende 4 pls
User prompt
Enemi 4
User prompt
B-2 ska röra sig lite snabare
User prompt
Please fix the bug: 'TypeError: tween.to is not a function. (In 'tween.to(warningTxt, { alpha: 0 }, 3000)', 'tween.to' is undefined)' in or related to this line: 'tween.to(warningTxt, {' Line Number: 143 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Om man inte eliminerar alla fiender så är det game over
User prompt
När man dödat ett plan ska Bomm bilden komma fram där planet var ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Det ska stå hur monga plan man har dödat
User prompt
Enemi3 ska spana och när en text där det står warning ska Enemi 2 koma
User prompt
Enemi 1 skute för snabt ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Enemi1 en bomb Pär 2,3 sikund ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Enemi 1 ska skepa bomber
User prompt
Enemi 2 kan skuta
User prompt
Enime 1 ska inte Kiruna skuta
User prompt
Enemi 1 ska Kina skuta
User prompt
Hp
User prompt
Olika fiend plan
User prompt
Wave system
User prompt
Man ska Kina röra planet
User prompt
Skoten ska inte koma från där man tryker
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -12;
self.damage = 1;
self.update = function () {
self.y += self.speed;
};
return self;
});
var Cloud = Container.expand(function () {
var self = Container.call(this);
var cloudType = ['cloud1', 'cloud2', 'cloud3'][Math.floor(Math.random() * 3)];
var cloudGraphics = self.attachAsset(cloudType, {
anchorX: 0.5,
anchorY: 0.5
});
cloudGraphics.alpha = 0.7;
self.speed = Math.random() * 2 + 1;
self.update = function () {
self.y += self.speed;
};
return self;
});
// Game variables
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3;
self.health = 1;
self.update = function () {
self.y += self.speed;
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
self.health = 3;
self.update = function () {
// Keep player in bounds - only allow movement along bottom edge
if (self.x < 40) self.x = 40;
if (self.x > 2008) self.x = 2008;
// Force player to stay at bottom of screen
self.y = 2400;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
// Game variables
var player;
var enemies = [];
var bullets = [];
var clouds = [];
var score = 0;
var enemySpawnTimer = 0;
var cloudSpawnTimer = 0;
var currentWave = 1;
var enemiesSpawnedThisWave = 0;
var enemiesKilledThisWave = 0;
var enemiesPerWave = 5;
var waveInProgress = false;
var waveStartDelay = 0;
var maxEnemySpawnRate = 60;
// Initialize background clouds
for (var i = 0; i < 8; i++) {
var cloud = new Cloud();
cloud.x = Math.random() * 2048;
cloud.y = Math.random() * 2732;
clouds.push(cloud);
game.addChild(cloud);
}
// Create player
player = game.addChild(new Player());
player.x = 1024;
player.y = 2400;
// Score display
var scoreTxt = new Text2('Score: ' + score, {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(scoreTxt);
scoreTxt.x = 120;
scoreTxt.y = 20;
// Wave display
var waveTxt = new Text2('Wave: ' + currentWave, {
size: 60,
fill: 0xFFFF00
});
waveTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(waveTxt);
waveTxt.y = 20;
// Touch input handling for player movement
game.down = function (x, y, obj) {
// Move player to touch x position, keeping y at bottom
player.x = x;
};
game.move = function (x, y, obj) {
// Move player to touch x position while dragging
player.x = x;
};
// Main game loop
game.update = function () {
// Spawn new clouds
cloudSpawnTimer++;
if (cloudSpawnTimer > 120) {
var cloud = new Cloud();
cloud.x = Math.random() * 2048;
cloud.y = -100;
clouds.push(cloud);
game.addChild(cloud);
cloudSpawnTimer = 0;
}
// Update clouds
for (var i = clouds.length - 1; i >= 0; i--) {
var cloud = clouds[i];
if (cloud.y > 2800) {
cloud.destroy();
clouds.splice(i, 1);
}
}
// Continuous shooting every 10 ticks - bullets spawn from player position
if (LK.ticks % 10 === 0) {
var bullet = new Bullet();
bullet.x = player.x; // Spawn bullet at player's exact x position
bullet.y = player.y - 60; // Spawn bullet slightly above player
bullets.push(bullet);
game.addChild(bullet);
LK.getSound('shoot').play();
}
// Wave system - spawn enemies based on current wave
if (!waveInProgress && waveStartDelay <= 0) {
// Start new wave
waveInProgress = true;
enemiesSpawnedThisWave = 0;
enemiesKilledThisWave = 0;
enemiesPerWave = Math.min(5 + currentWave * 2, 20); // Increase enemies per wave, cap at 20
maxEnemySpawnRate = Math.max(30, 60 - currentWave * 3); // Faster spawning each wave, minimum 30 ticks
waveTxt.setText('Wave: ' + currentWave);
}
if (waveInProgress && enemiesSpawnedThisWave < enemiesPerWave) {
enemySpawnTimer++;
if (enemySpawnTimer > maxEnemySpawnRate) {
var enemy = new Enemy();
enemy.x = Math.random() * 1900 + 100;
enemy.y = -50;
// Make enemies faster in later waves
enemy.speed = 3 + Math.floor(currentWave / 3);
enemies.push(enemy);
game.addChild(enemy);
enemySpawnTimer = 0;
enemiesSpawnedThisWave++;
}
}
// Update bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Remove bullets that are off screen
if (bullet.y < -50) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check bullet-enemy collisions
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (bullet.intersects(enemy)) {
// Destroy enemy and bullet
LK.getSound('explosion').play();
bullet.destroy();
bullets.splice(i, 1);
enemy.destroy();
enemies.splice(j, 1);
// Update score and wave progress
score += 10 * currentWave; // More points for later waves
LK.setScore(score);
scoreTxt.setText('Score: ' + score);
enemiesKilledThisWave++;
// Check if wave is complete
if (waveInProgress && enemiesKilledThisWave >= enemiesPerWave) {
waveInProgress = false;
currentWave++;
waveStartDelay = 120; // 2 second delay between waves
LK.effects.flashScreen(0x00ff00, 500); // Green flash for wave complete
}
break;
}
}
}
// Update enemies
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
// Remove enemies that are off screen
if (enemy.y > 2800) {
enemy.destroy();
enemies.splice(i, 1);
continue;
}
// Check enemy-player collision
if (enemy.intersects(player)) {
player.health--;
if (player.health <= 0) {
LK.showGameOver();
} else {
LK.effects.flashObject(player, 0xff0000, 500);
}
enemy.destroy();
enemies.splice(i, 1);
}
}
// Handle wave start delay
if (waveStartDelay > 0) {
waveStartDelay--;
}
}; ===================================================================
--- original.js
+++ change.js
@@ -77,8 +77,15 @@
var clouds = [];
var score = 0;
var enemySpawnTimer = 0;
var cloudSpawnTimer = 0;
+var currentWave = 1;
+var enemiesSpawnedThisWave = 0;
+var enemiesKilledThisWave = 0;
+var enemiesPerWave = 5;
+var waveInProgress = false;
+var waveStartDelay = 0;
+var maxEnemySpawnRate = 60;
// Initialize background clouds
for (var i = 0; i < 8; i++) {
var cloud = new Cloud();
cloud.x = Math.random() * 2048;
@@ -98,8 +105,16 @@
scoreTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(scoreTxt);
scoreTxt.x = 120;
scoreTxt.y = 20;
+// Wave display
+var waveTxt = new Text2('Wave: ' + currentWave, {
+ size: 60,
+ fill: 0xFFFF00
+});
+waveTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(waveTxt);
+waveTxt.y = 20;
// Touch input handling for player movement
game.down = function (x, y, obj) {
// Move player to touch x position, keeping y at bottom
player.x = x;
@@ -136,18 +151,32 @@
bullets.push(bullet);
game.addChild(bullet);
LK.getSound('shoot').play();
}
- // Spawn enemies
- enemySpawnTimer++;
- if (enemySpawnTimer > 60) {
- var enemy = new Enemy();
- enemy.x = Math.random() * 1900 + 100;
- enemy.y = -50;
- enemies.push(enemy);
- game.addChild(enemy);
- enemySpawnTimer = 0;
+ // Wave system - spawn enemies based on current wave
+ if (!waveInProgress && waveStartDelay <= 0) {
+ // Start new wave
+ waveInProgress = true;
+ enemiesSpawnedThisWave = 0;
+ enemiesKilledThisWave = 0;
+ enemiesPerWave = Math.min(5 + currentWave * 2, 20); // Increase enemies per wave, cap at 20
+ maxEnemySpawnRate = Math.max(30, 60 - currentWave * 3); // Faster spawning each wave, minimum 30 ticks
+ waveTxt.setText('Wave: ' + currentWave);
}
+ if (waveInProgress && enemiesSpawnedThisWave < enemiesPerWave) {
+ enemySpawnTimer++;
+ if (enemySpawnTimer > maxEnemySpawnRate) {
+ var enemy = new Enemy();
+ enemy.x = Math.random() * 1900 + 100;
+ enemy.y = -50;
+ // Make enemies faster in later waves
+ enemy.speed = 3 + Math.floor(currentWave / 3);
+ enemies.push(enemy);
+ game.addChild(enemy);
+ enemySpawnTimer = 0;
+ enemiesSpawnedThisWave++;
+ }
+ }
// Update bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Remove bullets that are off screen
@@ -165,12 +194,20 @@
bullet.destroy();
bullets.splice(i, 1);
enemy.destroy();
enemies.splice(j, 1);
- // Update score
- score += 10;
+ // Update score and wave progress
+ score += 10 * currentWave; // More points for later waves
LK.setScore(score);
scoreTxt.setText('Score: ' + score);
+ enemiesKilledThisWave++;
+ // Check if wave is complete
+ if (waveInProgress && enemiesKilledThisWave >= enemiesPerWave) {
+ waveInProgress = false;
+ currentWave++;
+ waveStartDelay = 120; // 2 second delay between waves
+ LK.effects.flashScreen(0x00ff00, 500); // Green flash for wave complete
+ }
break;
}
}
}
@@ -194,5 +231,9 @@
enemy.destroy();
enemies.splice(i, 1);
}
}
+ // Handle wave start delay
+ if (waveStartDelay > 0) {
+ waveStartDelay--;
+ }
};
\ No newline at end of file
Moln. In-Game asset. 2d. High contrast. No shadows
Moln. In-Game asset. 2d. High contrast. No shadows
Misil rikdad upp. In-Game asset. 2d. High contrast. No shadows
F-22 upp ifrån. In-Game asset. 2d. High contrast. No shadows
SR-71 uppifrån. In-Game asset. 2d. High contrast. No shadows
B-2 uppifrån. In-Game asset. 2d. High contrast. No shadows
Explosion. In-Game asset. 2d. High contrast. No shadows
A-10 uppifrån. In-Game asset. 2d. High contrast. No shadows