User prompt
Please make all enemis move over circle
User prompt
double speed of enemies and powers
User prompt
enemies should spawn in waves and powerups should spawn between each wave
User prompt
Please fix the bug: 'Uncaught TypeError: circle.containsPoint is not a function' in or related to this line: 'if (game.children[i] instanceof Enemy && game.children[i].intersects(circle)) {' Line Number: 75
User prompt
if circle size is smaller than player then game over
Code edit (1 edits merged)
Please save this source code
User prompt
make sure powerup is inside circle to be destroyed by touch
User prompt
enemies should be spawned in waves
User prompt
enemies and powerups should overlap with circle 20% of their surface to be considered in the circle to be destroyed on touch
User prompt
when touch, also destroy powerup if inside circle
User prompt
powerup can spawn from anywhere outside of the screen, not only the bottom. But it should move towards the player
User prompt
powerup can spawn from anywhere outside of the screen like enemies, and move towards player
Code edit (1 edits merged)
Please save this source code
User prompt
when powerup is collected, add a powerup tracker on the top right. it should be 5 icons and they will the color of the power up when player catches a power up
User prompt
when e enemi intersects with player, then its game ovevr
Code edit (1 edits merged)
Please save this source code
User prompt
eneies should be hidden until they intersect with circle
User prompt
make sure enemies are dsiplaye when intersecting with circle
User prompt
enemies should be hidden when they are not on top of the circle
Code edit (1 edits merged)
Please save this source code
User prompt
make sure player is on top of circle
Code edit (1 edits merged)
Please save this source code
User prompt
make flash light yellow
User prompt
Please fix the bug: 'Uncaught TypeError: LK.effects.shakeScreen is not a function' in or related to this line: 'LK.effects.shakeScreen(10, 500); // Shake intensity of 10 and duration of 500ms' Line Number: 75
User prompt
add shake effect on screen when down is pressed
===================================================================
--- original.js
+++ change.js
@@ -13,10 +13,18 @@
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
- if (self.intersects(player) && self.overlapPercentage(circle) >= 20) {
+ if (self.intersects(player)) {
LK.showGameOver();
+ } else if (self.y > 2732 + 50 || self.y < -50 || self.x > 2048 + 50 || self.x < -50) {
+ // Destroy enemy if it goes off-screen
+ self.destroy();
+ enemiesSpawned--;
+ if (enemiesSpawned <= 0) {
+ // All enemies in the wave are destroyed, spawn the next wave
+ spawnEnemyWave();
+ }
}
};
});
// Create a player class
@@ -39,9 +47,9 @@
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
- if (self.intersects(player) && self.overlapPercentage(circle) >= 20) {
+ if (self.intersects(player)) {
self.destroy();
circle.scale.x *= 1.2;
circle.scale.y *= 1.2;
}
@@ -60,23 +68,14 @@
/****
* Game Code
****/
-Container.prototype.overlapPercentage = function (other) {
- var selfBounds = this.getBounds();
- var otherBounds = other.getBounds();
- var overlapWidth = Math.max(0, Math.min(selfBounds.right, otherBounds.right) - Math.max(selfBounds.left, otherBounds.left));
- var overlapHeight = Math.max(0, Math.min(selfBounds.bottom, otherBounds.bottom) - Math.max(selfBounds.top, otherBounds.top));
- var overlapArea = overlapWidth * overlapHeight;
- var selfArea = selfBounds.width * selfBounds.height;
- return overlapArea / selfArea * 100;
-};
game.down = function (x, y, obj) {
console.log("Screen was pressed at", x, y);
for (var i = game.children.length - 1; i >= 0; i--) {
- if (game.children[i] instanceof Enemy && game.children[i].intersects(circle) && game.children[i].overlapPercentage(circle) >= 20) {
+ if (game.children[i] instanceof Enemy && game.children[i].intersects(circle)) {
game.children[i].destroy();
- } else if (game.children[i] instanceof PowerUp && game.children[i].intersects(circle) && game.children[i].overlapPercentage(circle) >= 20) {
+ } else if (game.children[i] instanceof PowerUp && game.children[i].intersects(circle)) {
game.children[i].destroy();
}
}
circle.scale.x *= 0.9;
@@ -131,10 +130,27 @@
enemy.y = Math.random() * 2732;
}
game.addChild(enemy);
}
-// Call spawnEnemy function every second
-LK.setInterval(spawnEnemy, 1000);
+// Variables for wave-based enemy spawning
+var waveNumber = 1;
+var enemiesPerWave = 5;
+var enemiesSpawned = 0;
+var waveInterval = 5000; // 5 seconds between waves
+// Function to spawn a wave of enemies
+function spawnEnemyWave() {
+ enemiesSpawned = 0;
+ for (var i = 0; i < enemiesPerWave; i++) {
+ spawnEnemy();
+ }
+ waveNumber++;
+ enemiesPerWave += 2; // Increase the number of enemies per wave
+}
+// Function to spawn a single enemy
+// Start the first wave
+spawnEnemyWave();
+// Set interval to spawn new waves
+LK.setInterval(spawnEnemyWave, waveInterval);
// Create a circle in the center of the screen
var circle = game.addChild(LK.getAsset('circle', {
anchorX: 0.5,
anchorY: 0.5