User prompt
player one hit dead
User prompt
much bullet attack player
User prompt
player bullet 1 second interval release
User prompt
fix sound
User prompt
add background asset
User prompt
reduce enemy
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic.scale, {' Line Number: 265
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic.scale, {' Line Number: 265
User prompt
bullet enemy can hit and destroy
User prompt
add blue sky background with moving cloud ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
add moving sky background
User prompt
game just shooting dont make any feauture
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264
User prompt
make simple logic
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 264 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(self, {' Line Number: 62
User prompt
Please fix the bug: 'TypeError: tween.to is not a function' in or related to this line: 'tween.to(graphic, {' Line Number: 264
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeOutQuad')' in or related to this line: 'tween.to(self, {' Line Number: 62
User prompt
enemy one hit dead
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'easeInOutQuad')' in or related to this line: 'tween.to(graphic, {' Line Number: 391
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Boss = Container.expand(function () {
var self = Container.call(this);
// Boss graphics
var bossGraphics = self.attachAsset('boss', {
anchorX: 0.5,
anchorY: 0.5
});
// Boss properties
self.speed = 2;
self.health = 50;
self.points = 500;
self.lastX = 0;
self.moveDirection = 1;
self.movePhase = 0;
self.active = false;
self.turrets = [];
self.attackPhase = 0;
self.attackTimer = 0;
// Add turrets
for (var i = 0; i < 4; i++) {
var turret = self.addChild(LK.getAsset('bossPart', {
anchorX: 0.5,
anchorY: 0.5,
x: i < 2 ? -100 : 100,
y: i % 2 === 0 ? -50 : 50
}));
turret.health = 10;
self.turrets.push(turret);
}
// Activate boss
self.activate = function () {
self.active = true;
LK.getSound('bossAlert').play();
// Entrance animation
self.y = -150;
tween.to(self, {
y: 400
}, 2000, tween.easing.easeOutQuad);
};
// Damage the boss
self.damage = function (amount, target) {
if (!self.active) {
return false;
}
if (target) {
// Hit a turret
target.health -= amount;
if (target.health <= 0) {
// Create explosion
var explosion = new Explosion();
explosion.x = self.x + target.x;
explosion.y = self.y + target.y;
game.addChild(explosion);
// Remove turret from array and destroy it
var index = self.turrets.indexOf(target);
if (index !== -1) {
self.turrets.splice(index, 1);
}
target.destroy();
// Add score
LK.setScore(LK.getScore() + 50);
} else {
// Flash turret when hit
LK.effects.flashObject(target, 0xffffff, 300);
}
return false;
}
// Hit the main boss body
self.health -= amount;
if (self.health <= 0) {
// Create explosion
var finalExplosion = new Explosion();
finalExplosion.x = self.x;
finalExplosion.y = self.y;
game.addChild(finalExplosion);
// Add score
LK.setScore(LK.getScore() + self.points);
// You win!
LK.setTimeout(function () {
LK.showYouWin();
}, 1000);
// Remove boss
self.destroy();
return true;
}
// Flash boss when hit
LK.effects.flashObject(self, 0xffffff, 300);
return false;
};
// Fire bullets from turrets
self.fire = function () {
if (!self.active || self.turrets.length === 0) {
return;
}
// Fire from each turret
for (var i = 0; i < self.turrets.length; i++) {
var turret = self.turrets[i];
var bullet = new EnemyBullet();
bullet.x = self.x + turret.x;
bullet.y = self.y + turret.y + 40;
game.addChild(bullet);
enemyBullets.push(bullet);
}
LK.getSound('enemyShoot').play();
};
// Update the boss
self.update = function () {
if (!self.active) {
return;
}
self.lastX = self.x;
// Move horizontally in a sine wave pattern
self.movePhase += 0.02;
self.x = 2048 / 2 + Math.sin(self.movePhase) * 500;
// Attack patterns
self.attackTimer++;
if (self.attackTimer >= 60) {
self.attackTimer = 0;
// Different attack patterns based on phase
if (self.attackPhase === 0) {
self.fire();
} else if (self.attackPhase === 1) {
// Rapid fire
self.fire();
LK.setTimeout(function () {
self.fire();
}, 200);
LK.setTimeout(function () {
self.fire();
}, 400);
}
// Change attack phase based on health
self.attackPhase = self.health < 25 ? 1 : 0;
}
};
return self;
});
// Set game background
var Enemy = Container.expand(function () {
var self = Container.call(this);
// Enemy graphics
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
// Enemy properties
self.speed = 3;
self.fireRate = 120;
self.health = 1;
self.points = 10;
self.lastY = 0;
self.lastX = 0;
self.moveDirection = 1;
self.lastWasIntersecting = false;
// Initialize with random horizontal movement
self.horizontalSpeed = 1 + Math.random() * 2;
if (Math.random() > 0.5) {
self.horizontalSpeed *= -1;
}
// Damage the enemy
self.damage = function (amount) {
self.health -= amount;
if (self.health <= 0) {
// Create explosion
var explosion = new Explosion();
explosion.x = self.x;
explosion.y = self.y;
game.addChild(explosion);
// Add score
LK.setScore(LK.getScore() + self.points);
// Remove enemy
self.destroy();
return true;
}
// Flash enemy when hit
LK.effects.flashObject(self, 0xffffff, 300);
return false;
};
// Fire a bullet
self.fire = function () {
if (Math.random() < 0.7 && player && player.health > 0) {
var bullet = new EnemyBullet();
bullet.x = self.x;
bullet.y = self.y + 40;
game.addChild(bullet);
enemyBullets.push(bullet);
LK.getSound('enemyShoot').play();
}
};
// Update the enemy
self.update = function () {
self.lastX = self.x;
self.lastY = self.y;
// Move down
self.y += self.speed;
// Move side to side
self.x += self.horizontalSpeed * self.moveDirection;
// Bounce at edges
if (self.x < 100 || self.x > 2048 - 100) {
self.moveDirection *= -1;
}
// Occasionally fire
if (LK.ticks % self.fireRate === 0) {
self.fire();
}
};
return self;
});
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
// Bullet graphics
self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
// Bullet properties
self.speed = 8;
self.lastY = 0;
self.lastWasIntersecting = false;
// Update the bullet position
self.update = function () {
self.lastY = self.y;
self.y += self.speed;
};
return self;
});
var Explosion = Container.expand(function () {
var self = Container.call(this);
// Explosion graphics
var graphic = self.attachAsset('explosion', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0.8
});
// Play explosion sound
LK.getSound('explosion').play();
// Simple animation
LK.setTimeout(function () {
self.destroy();
}, 500);
return self;
});
var PlayerBullet = Container.expand(function () {
var self = Container.call(this);
// Bullet graphics
self.attachAsset('playerBullet', {
anchorX: 0.5,
anchorY: 0.5
});
// Bullet properties
self.speed = 15;
self.damage = 1;
self.lastY = 0;
self.lastWasIntersecting = false;
// Update the bullet position
self.update = function () {
self.lastY = self.y;
self.y -= self.speed;
};
return self;
});
var PlayerShip = Container.expand(function () {
var self = Container.call(this);
// Ship graphics
var shipGraphics = self.attachAsset('playerShip', {
anchorX: 0.5,
anchorY: 0.5
});
// Ship properties
self.speed = 15;
self.health = 3;
self.lastX = 0;
self.lastY = 0;
self.fireRate = 15;
self.lastFired = 0;
self.invulnerable = false;
// Make ship fire a bullet
self.fire = function () {
if (LK.ticks - self.lastFired >= self.fireRate) {
var bullet = new PlayerBullet();
bullet.x = self.x;
bullet.y = self.y - 50;
game.addChild(bullet);
bullets.push(bullet);
LK.getSound('playerShoot').play();
self.lastFired = LK.ticks;
}
};
// Damage the ship
self.damage = function () {
if (self.invulnerable) {
return;
}
self.health--;
if (self.health <= 0) {
// Game over
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
// Flash ship when hit
LK.effects.flashObject(self, 0xff0000, 1000);
// Make temporarily invulnerable
self.invulnerable = true;
shipGraphics.alpha = 0.5;
LK.setTimeout(function () {
self.invulnerable = false;
shipGraphics.alpha = 1;
}, 1500);
};
// Update method
self.update = function () {
self.lastX = self.x;
self.lastY = self.y;
};
return self;
});
var PowerUp = Container.expand(function () {
var self = Container.call(this);
// PowerUp graphics
var graphic = self.attachAsset('shield', {
anchorX: 0.5,
anchorY: 0.5
});
// PowerUp properties
self.speed = 2;
self.lastY = 0;
self.lastWasIntersecting = false;
// Apply the powerup effect
self.apply = function () {
LK.getSound('powerup').play();
};
// Update the powerup
self.update = function () {
self.lastY = self.y;
self.y += self.speed;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Set game background
game.setBackgroundColor(0x000033);
// Initialize game variables
var player;
var bullets = [];
var enemies = [];
var enemyBullets = [];
var score = 0;
// Create score text
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(scoreTxt);
scoreTxt.x = 120; // Keep away from top left 100x100 area
// Initialize player
player = new PlayerShip();
player.x = 2048 / 2;
player.y = 2732 - 200;
game.addChild(player);
// Create a new wave of enemies
function createWave() {
// Create a new wave of enemies
var count = 10;
for (var i = 0; i < count; i++) {
var enemy = new Enemy();
enemy.x = 200 + Math.random() * (2048 - 400);
enemy.y = -100 - Math.random() * 500;
enemy.health = 1;
enemy.points = 10;
game.addChild(enemy);
enemies.push(enemy);
}
}
// Initial wave
createWave();
// Event handlers for player controls
var touchActive = false;
var touchX = 0;
// Mouse/touch down
game.down = function (x, y, obj) {
touchActive = true;
touchX = x;
// Fire weapon
if (player && player.health > 0) {
player.fire();
}
};
// Mouse/touch move
game.move = function (x, y, obj) {
if (touchActive && player && player.health > 0) {
// Move player
var deltaX = x - touchX;
player.x += deltaX;
// Keep player within screen bounds
player.x = Math.max(100, Math.min(2048 - 100, player.x));
touchX = x;
}
};
// Mouse/touch up
game.up = function (x, y, obj) {
touchActive = false;
};
// Main game update loop
game.update = function () {
// Update player
if (player) {
player.update();
// Auto-fire if touch is active
if (touchActive && LK.ticks % 15 === 0) {
player.fire();
}
}
// Update player bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
bullet.update();
// Check if bullet is off screen
if (bullet.y < -50) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check collision with enemies
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (!bullet.lastWasIntersecting && bullet.intersects(enemy)) {
bullet.lastWasIntersecting = true;
// Damage enemy
if (enemy.damage(bullet.damage)) {
enemies.splice(j, 1);
// Create new enemies when all are defeated
if (enemies.length === 0) {
createWave();
}
}
// Remove bullet
bullet.destroy();
bullets.splice(i, 1);
break;
}
}
}
// Update enemy bullets
for (var i = enemyBullets.length - 1; i >= 0; i--) {
var enemyBullet = enemyBullets[i];
enemyBullet.update();
// Check if bullet is off screen
if (enemyBullet.y > 2732 + 50) {
enemyBullet.destroy();
enemyBullets.splice(i, 1);
continue;
}
// Check collision with player
if (player && player.health > 0 && !enemyBullet.lastWasIntersecting && enemyBullet.intersects(player)) {
enemyBullet.lastWasIntersecting = true;
// Damage player
player.damage();
// Remove bullet
enemyBullet.destroy();
enemyBullets.splice(i, 1);
}
}
// Update enemies
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
enemy.update();
// Check if enemy is off screen
if (enemy.y > 2732 + 100) {
enemy.destroy();
enemies.splice(i, 1);
// Create new enemies when all are gone
if (enemies.length === 0) {
createWave();
}
continue;
}
// Check collision with player
if (player && player.health > 0 && !enemy.lastWasIntersecting && enemy.intersects(player)) {
enemy.lastWasIntersecting = true;
// Damage player
player.damage();
// Damage enemy
if (enemy.damage(1)) {
enemies.splice(i, 1);
// Create new enemies when all are gone
if (enemies.length === 0) {
createWave();
}
}
}
}
// Update score text
scoreTxt.setText('Score: ' + LK.getScore());
}; ===================================================================
--- original.js
+++ change.js
@@ -241,20 +241,12 @@
alpha: 0.8
});
// Play explosion sound
LK.getSound('explosion').play();
- // Animate the explosion
- tween(graphic, {
- scaleX: 2,
- scaleY: 2,
- alpha: 0
- }, {
- duration: 500,
- easing: tween.easeOutQuad,
- onFinish: function onFinish() {
- self.destroy();
- }
- });
+ // Simple animation
+ LK.setTimeout(function () {
+ self.destroy();
+ }, 500);
return self;
});
var PlayerBullet = Container.expand(function () {
var self = Container.call(this);
@@ -284,21 +276,13 @@
});
// Ship properties
self.speed = 15;
self.health = 3;
- self.shieldActive = false;
self.lastX = 0;
self.lastY = 0;
self.fireRate = 15;
self.lastFired = 0;
self.invulnerable = false;
- // Shield
- self.shield = self.addChild(LK.getAsset('shield', {
- anchorX: 0.5,
- anchorY: 0.5,
- alpha: 0.5
- }));
- self.shield.visible = false;
// Make ship fire a bullet
self.fire = function () {
if (LK.ticks - self.lastFired >= self.fireRate) {
var bullet = new PlayerBullet();
@@ -309,28 +293,13 @@
LK.getSound('playerShoot').play();
self.lastFired = LK.ticks;
}
};
- // Activate shield
- self.activateShield = function () {
- self.shieldActive = true;
- self.shield.visible = true;
- // Shield lasts for 5 seconds
- LK.setTimeout(function () {
- self.shieldActive = false;
- self.shield.visible = false;
- }, 5000);
- };
// Damage the ship
self.damage = function () {
if (self.invulnerable) {
return;
}
- if (self.shieldActive) {
- self.shieldActive = false;
- self.shield.visible = false;
- return;
- }
self.health--;
if (self.health <= 0) {
// Game over
LK.effects.flashScreen(0xff0000, 1000);
@@ -355,64 +324,20 @@
return self;
});
var PowerUp = Container.expand(function () {
var self = Container.call(this);
- // PowerUp types: 0 = shield, 1 = rapid fire
- self.type = Math.floor(Math.random() * 2);
- // PowerUp graphics (different colors based on type)
- var color = self.type === 0 ? 0x3498db : 0xf1c40f;
+ // PowerUp graphics
var graphic = self.attachAsset('shield', {
anchorX: 0.5,
- anchorY: 0.5,
- tint: color
+ anchorY: 0.5
});
// PowerUp properties
self.speed = 2;
self.lastY = 0;
self.lastWasIntersecting = false;
- // Animate the powerup
- function _onFinish() {
- tween(graphic, {
- scaleX: 0.8,
- scaleY: 0.8
- }, {
- duration: 500,
- easing: tween.easeInOut,
- onFinish: function onFinish() {
- // Create repeating animation by reversing it
- tween(graphic, {
- scaleX: 1.2,
- scaleY: 1.2
- }, {
- duration: 500,
- easing: tween.easeInOut,
- onFinish: _onFinish
- });
- }
- });
- }
- tween(graphic, {
- scaleX: 1.2,
- scaleY: 1.2
- }, {
- duration: 500,
- easing: tween.easeInOut,
- onFinish: _onFinish
- });
// Apply the powerup effect
self.apply = function () {
LK.getSound('powerup').play();
- if (self.type === 0) {
- // Shield powerup
- player.activateShield();
- } else {
- // Rapid fire powerup
- var oldFireRate = player.fireRate;
- player.fireRate = 5;
- LK.setTimeout(function () {
- player.fireRate = oldFireRate;
- }, 5000);
- }
};
// Update the powerup
self.update = function () {
self.lastY = self.y;
@@ -430,25 +355,15 @@
/****
* Game Code
****/
-// Import the tween library for animations
-// Background music
-// Game sounds
-// Define player ship, bullets, enemies, and other game assets
// Set game background
game.setBackgroundColor(0x000033);
// Initialize game variables
var player;
var bullets = [];
var enemies = [];
var enemyBullets = [];
-var powerUps = [];
-var boss;
-var waveCount = 0;
-var enemiesDefeated = 0;
-var bossSpawned = false;
-var gameOver = false;
var score = 0;
// Create score text
var scoreTxt = new Text2('Score: 0', {
size: 60,
@@ -456,60 +371,29 @@
});
scoreTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(scoreTxt);
scoreTxt.x = 120; // Keep away from top left 100x100 area
-// Create wave text
-var waveTxt = new Text2('Wave: 1', {
- size: 60,
- fill: 0xFFFFFF
-});
-waveTxt.anchor.set(1, 0);
-LK.gui.topRight.addChild(waveTxt);
-// Create health text
-var healthTxt = new Text2('Health: 3', {
- size: 60,
- fill: 0xFFFFFF
-});
-healthTxt.anchor.set(0.5, 0);
-LK.gui.top.addChild(healthTxt);
// Initialize player
player = new PlayerShip();
player.x = 2048 / 2;
player.y = 2732 - 200;
game.addChild(player);
-// Create boss (not active yet)
-boss = new Boss();
-boss.x = 2048 / 2;
-game.addChild(boss);
// Create a new wave of enemies
function createWave() {
- waveCount++;
- waveTxt.setText('Wave: ' + waveCount);
- // Boss appears after wave 5
- if (waveCount >= 5 && !bossSpawned) {
- bossSpawned = true;
- boss.activate();
- return;
- }
// Create a new wave of enemies
- var count = 5 + waveCount * 2;
+ var count = 10;
for (var i = 0; i < count; i++) {
var enemy = new Enemy();
enemy.x = 200 + Math.random() * (2048 - 400);
enemy.y = -100 - Math.random() * 500;
- // Keep enemies at 1 health for one-hit defeats
enemy.health = 1;
- enemy.points = 10 * waveCount;
+ enemy.points = 10;
game.addChild(enemy);
enemies.push(enemy);
}
}
// Initial wave
createWave();
-// Play background music
-LK.playMusic('gameMusic', {
- loop: true
-});
// Event handlers for player controls
var touchActive = false;
var touchX = 0;
// Mouse/touch down
@@ -537,23 +421,16 @@
touchActive = false;
};
// Main game update loop
game.update = function () {
- if (gameOver) {
- return;
- }
// Update player
if (player) {
player.update();
// Auto-fire if touch is active
if (touchActive && LK.ticks % 15 === 0) {
player.fire();
}
}
- // Update boss
- if (boss) {
- boss.update();
- }
// Update player bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
bullet.update();
@@ -563,68 +440,26 @@
bullets.splice(i, 1);
continue;
}
// Check collision with enemies
- var hitEnemy = false;
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (!bullet.lastWasIntersecting && bullet.intersects(enemy)) {
bullet.lastWasIntersecting = true;
// Damage enemy
if (enemy.damage(bullet.damage)) {
enemies.splice(j, 1);
- enemiesDefeated++;
- // Spawn powerup (10% chance)
- if (Math.random() < 0.1) {
- var powerUp = new PowerUp();
- powerUp.x = enemy.x;
- powerUp.y = enemy.y;
- game.addChild(powerUp);
- powerUps.push(powerUp);
+ // Create new enemies when all are defeated
+ if (enemies.length === 0) {
+ createWave();
}
}
// Remove bullet
bullet.destroy();
bullets.splice(i, 1);
- hitEnemy = true;
break;
}
}
- // Skip boss check if already hit an enemy
- if (hitEnemy) {
- continue;
- }
- // Check collision with boss
- if (boss && boss.active) {
- // Check collision with turrets first
- var hitTurret = false;
- for (var t = 0; t < boss.turrets.length; t++) {
- var turret = boss.turrets[t];
- var turretGlobal = game.toLocal(boss.toGlobal({
- x: turret.x,
- y: turret.y
- }));
- if (Math.abs(bullet.x - turretGlobal.x) < 50 && Math.abs(bullet.y - turretGlobal.y) < 50) {
- boss.damage(bullet.damage, turret);
- bullet.destroy();
- bullets.splice(i, 1);
- hitTurret = true;
- break;
- }
- }
- if (hitTurret) {
- continue;
- }
- // Check collision with boss body
- if (!bullet.lastWasIntersecting && bullet.intersects(boss)) {
- bullet.lastWasIntersecting = true;
- // Damage boss
- boss.damage(bullet.damage);
- // Remove bullet
- bullet.destroy();
- bullets.splice(i, 1);
- }
- }
}
// Update enemy bullets
for (var i = enemyBullets.length - 1; i >= 0; i--) {
var enemyBullet = enemyBullets[i];
@@ -639,10 +474,8 @@
if (player && player.health > 0 && !enemyBullet.lastWasIntersecting && enemyBullet.intersects(player)) {
enemyBullet.lastWasIntersecting = true;
// Damage player
player.damage();
- // Update health text
- healthTxt.setText('Health: ' + player.health);
// Remove bullet
enemyBullet.destroy();
enemyBullets.splice(i, 1);
}
@@ -654,47 +487,28 @@
// Check if enemy is off screen
if (enemy.y > 2732 + 100) {
enemy.destroy();
enemies.splice(i, 1);
+ // Create new enemies when all are gone
+ if (enemies.length === 0) {
+ createWave();
+ }
continue;
}
// Check collision with player
if (player && player.health > 0 && !enemy.lastWasIntersecting && enemy.intersects(player)) {
enemy.lastWasIntersecting = true;
// Damage player
player.damage();
- // Update health text
- healthTxt.setText('Health: ' + player.health);
// Damage enemy
if (enemy.damage(1)) {
enemies.splice(i, 1);
- enemiesDefeated++;
+ // Create new enemies when all are gone
+ if (enemies.length === 0) {
+ createWave();
+ }
}
}
}
- // Update powerups
- for (var i = powerUps.length - 1; i >= 0; i--) {
- var powerUp = powerUps[i];
- powerUp.update();
- // Check if powerup is off screen
- if (powerUp.y > 2732 + 50) {
- powerUp.destroy();
- powerUps.splice(i, 1);
- continue;
- }
- // Check collision with player
- if (player && player.health > 0 && !powerUp.lastWasIntersecting && powerUp.intersects(player)) {
- powerUp.lastWasIntersecting = true;
- // Apply powerup effect
- powerUp.apply();
- // Remove powerup
- powerUp.destroy();
- powerUps.splice(i, 1);
- }
- }
- // Check if wave is completed
- if (enemies.length === 0 && !bossSpawned) {
- createWave();
- }
// Update score text
scoreTxt.setText('Score: ' + LK.getScore());
};
\ No newline at end of file
top down 32 bit image manta ray air warplane. In-Game asset. 2d. High contrast. No shadows
2d disney style image about zone of blue sky. In-Game asset. 2d. High contrast. No shadows
red laser. In-Game asset. 2d. High contrast. No shadows
top down 2d scifi pelican war air plane look a like. In-Game asset. 2d. High contrast. No shadows
vertical torpedo fall. In-Game asset. 2d. High contrast. No shadows
disney image style yellow explosion. In-Game asset. 2d. High contrast. No shadows