Code edit (14 edits merged)
Please save this source code
User prompt
enemies should move upa and down on their spot lighty
User prompt
make enemy movement patter smootehr
User prompt
make each enemy move a little different
User prompt
add mosquito like movement to enemies
Code edit (2 edits merged)
Please save this source code
User prompt
rotate 180 degrees left wing
Code edit (1 edits merged)
Please save this source code
User prompt
use mirror image for left wing
User prompt
Powerup should have some effect to seem cartoony
User prompt
Make wings move a lot faster
User prompt
add wings to enemies. Wings will move up and down in the sides of the enemy
User prompt
Add snaky movement to enemies and power up
User prompt
Add snaky movement to enemies
User prompt
reduce in half time spawn between each enemy within a wave
User prompt
add diferent movement patters to each new wave
User prompt
add sigzag movement to enemies and powerup
Code edit (2 edits merged)
Please save this source code
User prompt
when flashing and displayin the enemies, make sure the enemies alpha is set to very low
User prompt
powerup should be displayed ever if outside the circle
User prompt
when screen is flashing display enemies not matter if they are in the circle or not
User prompt
enemies should not be visible when outside of the circle
User prompt
use lk.score to track score of game. should be increased when an enemy is destroyed
User prompt
add score. every time an enemy is destroyed add 1
Code edit (1 edits merged)
Please save this source code
/**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); var leftWing = self.attachAsset('wing', { anchorX: 0.5, anchorY: 0.5 }); var rightWing = self.attachAsset('wing', { anchorX: 0.5, anchorY: 0.5 }); leftWing.x = -enemyGraphics.width / 2 - leftWing.width / 2; rightWing.x = enemyGraphics.width / 2 + rightWing.width / 2; self.speed = 4 + waveNumber * enemySpeedIncrement; // Initialize enemy speed with progression self.update = function () { var dx = player.x - self.x; var dy = player.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); leftWing.y = Math.sin(LK.ticks / 5) * 10; rightWing.y = Math.sin(LK.ticks / 5) * 10; self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; var dx = self.x - player.x; var dy = self.y - player.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance < self.width / 2 + player.width / 2) { LK.showGameOver(); } }; }); // Create a player class var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); }); var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpGraphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4 + waveNumber * enemySpeedIncrement; // Initialize power-up speed with progression self.update = function () { var dx = player.x - self.x; 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; // Add a scale effect to the powerup to make it seem cartoony self.scale.x = 1 + Math.sin(LK.ticks / 10) * 0.1; self.scale.y = 1 + Math.sin(LK.ticks / 10) * 0.1; var dx = self.x - player.x; var dy = self.y - player.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance < self.width / 2 + player.width / 2) { self.destroy(); circle.scale.x *= 1.25; circle.scale.y *= 1.25; } }; }); /**** * Initialize Game ****/ // Add player to the game //<Assets used in the game will automatically appear here> //<Write entity 'classes' with empty functions for important behavior here> var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ function isInsideCircle(object, circle) { var dx = object.x - circle.x; var dy = object.y - circle.y; var distance = Math.sqrt(dx * dx + dy * dy); return distance < circle.width / 2; } 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 && isInsideCircle(game.children[i], circle)) { game.children[i].destroy(); LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); } else if (game.children[i] instanceof PowerUp && isInsideCircle(game.children[i], circle)) { game.children[i].destroy(); } } circle.scale.x *= 0.9; circle.scale.y *= 0.9; // Add flash effect as a replacement for shake LK.effects.flashScreen(0xffff00, 200); // Flash yellow for 500ms }; function spawnPowerUp() { var powerUp = new PowerUp(); if (player) { var side = Math.floor(Math.random() * 4); if (side == 0) { // Top powerUp.x = Math.random() * 2048; powerUp.y = -50; } else if (side == 1) { // Right powerUp.x = 2048 + 50; powerUp.y = Math.random() * 2732; } else if (side == 2) { // Bottom powerUp.x = Math.random() * 2048; powerUp.y = 2732 + 50; } else { // Left powerUp.x = -50; powerUp.y = Math.random() * 2732; } game.addChild(powerUp); } } // Power-ups will now spawn between waves // Spawn enemies from outside the screen function spawnEnemy() { var enemy = new Enemy(); var side = Math.floor(Math.random() * 4); if (side == 0) { // Top enemy.x = Math.random() * 2048; enemy.y = -50; } else if (side == 1) { // Right enemy.x = 2048 + 50; enemy.y = Math.random() * 2732; } else if (side == 2) { // Bottom enemy.x = Math.random() * 2048; enemy.y = 2732 + 50; } else { // Left enemy.x = -50; enemy.y = Math.random() * 2732; } game.addChild(enemy); } // Variables to manage waves and power-up spawning var waveNumber = 0; var enemiesPerWave = 5; var enemiesSpawned = 0; var waveInterval = 5000; // 5 seconds between waves var enemySpeedIncrement = 0.25; // Speed increment per wave var enemiesPerWaveIncrement = 1; // Additional enemies per wave function startNextWave() { waveNumber++; enemiesSpawned = 0; enemiesPerWave += enemiesPerWaveIncrement; // Increase number of enemies per wave Enemy.prototype.speed += enemySpeedIncrement; // Increase enemy speed PowerUp.prototype.speed += enemySpeedIncrement; // Increase power-up speed spawnEnemiesInWave(); } function spawnEnemiesInWave() { if (enemiesSpawned < enemiesPerWave) { spawnEnemy(); enemiesSpawned++; LK.setTimeout(spawnEnemiesInWave, 500); // 0.5 seconds between enemy spawns } else { // Spawn power-up after the wave LK.setTimeout(spawnPowerUp, 1000); // Start the next wave after a delay LK.setTimeout(startNextWave, waveInterval); } } // Create a circle in the center of the screen var circle = new Container(); var circleGraphics = circle.attachAsset('circle', { anchorX: 0.5, anchorY: 0.5 }); game.addChild(circle); circle.x = 2048 / 2; circle.y = 2732 / 2; // Initialize score text var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Update score text whenever the score changes LK.on('scoreChange', function () { scoreTxt.setText(LK.getScore()); }); // Start the first wave startNextWave(); // Add player to the game var player = new Player(); game.addChild(player); player.x = 2048 / 2; // Center player horizontally player.y = 2732 / 2; // Center player vertically;
===================================================================
--- original.js
+++ change.js
@@ -54,8 +54,11 @@
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;
+ // Add a scale effect to the powerup to make it seem cartoony
+ self.scale.x = 1 + Math.sin(LK.ticks / 10) * 0.1;
+ self.scale.y = 1 + Math.sin(LK.ticks / 10) * 0.1;
var dx = self.x - player.x;
var dy = self.y - player.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < self.width / 2 + player.width / 2) {