User prompt
cada bono debe ocupar una orbita pero solo seran 3 bonos
User prompt
un solo objet bono en 3 orbitas aisladas
User prompt
Please fix the bug: 'orbits is undefined' in or related to this line: 'for (var i = 0; i < orbits.length; i++) {' Line Number: 89
User prompt
un bono por orbita
User prompt
diferentes velocidades al bonus
User prompt
mas
User prompt
amplia el radio de la orbita del bonus
User prompt
agrega colores rambom a los enemigos
User prompt
agrega un objeto bonus que orbita cerca del centro algo rapido
User prompt
llegar al centro da 100 puntos
User prompt
pon una puntuacion
User prompt
pon el numero de nivel arriba
User prompt
fija siempre el inici en el centro de abajo de la pantalla en todos los stages
User prompt
el jugador siempre aparecera en la parte inferior de la pantalla
User prompt
los enemigos se deben multiplicar uno mas por stage
User prompt
aunque cambien su orbita de direccion deben completar al menos 3 vueltas en un sentido
User prompt
deven ir sumandose enemigos segun se avanza hasta el nivel 20, un mas cada nivel, y algunos rotan contrario a las manesillas del reloj y otros aleatoreamene cambian su orbita de direccion
User prompt
los enemigos se deben ir sumando, nivel 1 con 3 enemigos, nivel2 cuatro enemigos y asi se siguen sumando
User prompt
cada nivel agrega un enemigo
User prompt
los enemigo se deven ir multiplicando a medidas se pasa de nivel
User prompt
los objetos aumentan en numero gradualmente mientras se pasan los niveles, la rotacion del jugador acelera la gravedad y va mas rapido al centro
User prompt
segun avanzan los stages aumentan los objetos que rotan en orbita
User prompt
la velocidad de atracion aumentala con cada nivel en milesimas
User prompt
todos los objetos colisional al jugador
User prompt
los niveles aumentan la cantidad de objetos y obstaculos y variantes de rotacion
/**** * Classes ****/ // Position near the top // Define Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); // Attach enemy asset var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); // Set initial position and movement properties self.speed = 1.2; // Lowered for better perception self.direction = 1; // 1 for right, -1 for left // Update method for enemy movement self.update = function () { self.x += self.speed * self.direction; // Reverse direction if enemy hits screen bounds if (self.x < 0 || self.x > 2048) { self.direction *= -1; } }; }); // Define Player class var Player = Container.expand(function () { var self = Container.call(this); // Attach player asset var playerGraphics = self.attachAsset('Ballplayer', { anchorX: 0.5, anchorY: 0.5 }); // Set initial position and movement properties self.speed = 2.5; // Lowered for better perception // Update method for player movement self.update = function () { // Movement handled by keyboard events }; }); /**** * Initialize Game ****/ // Reset Assets section to initial state // Reset Asteroid class definition //<Assets used in the game will automatically appear here> // Reset Planet class definition // Reset Star class definition // Reset Initialize Game section to initial state // Reset Game Code section to initial state var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Add a player to the game var player = game.addChild(new Player()); // Set initial position of the player player.x = 1024; // Center horizontally player.y = 2332; // Move 400px upwards // Store the center of the screen for easy reference var centerX = 1024; var centerY = 1366; // Define orbits var orbits = [200, 400, 800]; // Track the player's current angle and radius from the center player.angle = Math.atan2(player.y - centerY, player.x - centerX); player.radius = Math.sqrt((player.x - centerX) * (player.x - centerX) + (player.y - centerY) * (player.y - centerY)); // Keyboard controls removed for compatibility; player movement is now handled by other means. // Function to find the next closest orbit function getNextOrbit(currentY) { var currentOrbit = 2732 - currentY; for (var i = 0; i < orbits.length; i++) { if (orbits[i] > currentOrbit) { return 2732 - orbits[i]; } } // Add a new orbit to the end of the array to create an infinite loop var newOrbit = orbits[orbits.length - 1] + 200; orbits.push(newOrbit); return 2732 - newOrbit; } // Track if right mouse button is held down var rightMouseDown = false; // Track if left mouse button is held down var leftMouseDown = false; // Add event listener for mouse click game.down = function (x, y, obj) { // Detect left or right click var isRightClick = false; if (obj && obj.event && obj.event.button !== undefined) { isRightClick = obj.event.button === 2; } if (isRightClick) { rightMouseDown = true; } else { leftMouseDown = true; } // Update player position based on new angle and current radius player.x = centerX + player.radius * Math.cos(player.angle); player.y = centerY + player.radius * Math.sin(player.angle); }; // Add event listener for mouse up to stop moving towards center game.up = function (x, y, obj) { var isRightClick = false; if (obj && obj.event && obj.event.button !== undefined) { isRightClick = obj.event.button === 2; } if (isRightClick) { rightMouseDown = false; } else { leftMouseDown = false; } }; // Add an enemy to the game var enemy = game.addChild(new Enemy()); // Set initial position of the enemy enemy.x = 1024; // Center horizontally enemy.y = 1366; // Center vertically // Add orbiting behavior enemy.orbitRadius = 400; enemy.orbitAngle = 0; enemy.orbitSpeed = 0.004; // Lowered for better perception // Add a second enemy with a larger orbit radius var enemy2 = game.addChild(new Enemy()); // Set initial position of the second enemy enemy2.x = 1024; // Center horizontally enemy2.y = 1366; // Center vertically // Add orbiting behavior for the second enemy enemy2.orbitRadius = 800; enemy2.orbitAngle = 0; enemy2.orbitSpeed = 0.004; // Lowered for better perception // Add a third enemy with a smaller orbit radius var enemy3 = game.addChild(new Enemy()); // Set initial position of the third enemy enemy3.x = 1024; // Center horizontally enemy3.y = 1366; // Center vertically // Add orbiting behavior for the third enemy enemy3.orbitRadius = 200; enemy3.orbitAngle = 0; enemy3.orbitSpeed = 0.004; // Lowered for better perception // Initialize enemies array var enemies = [enemy, enemy2, enemy3]; // Update method for orbiting game.update = function () { // Gravity: each frame, pull the player a bit toward the center if (typeof currentLevel === "undefined") { var gravityStrength = 1.1; } else { // Increase gravityStrength by 0.001 per level (in thousandths) var gravityStrength = 1.1 + (currentLevel - 1) * 0.001; } player.radius = Math.max(80, player.radius - gravityStrength); player.x = centerX + player.radius * Math.cos(player.angle); player.y = centerY + player.radius * Math.sin(player.angle); // --- LEVEL SYSTEM: Track and progress levels up to 20 --- if (typeof currentLevel === "undefined") { var currentLevel = 1; var maxLevels = 20; } if (player.lastRadius === undefined) player.lastRadius = player.radius; if (player.lastRadius > 80 && player.radius <= 80) { // Player just reached the center! if (currentLevel < maxLevels) { currentLevel++; // Intensify enemy orbits and speed for new level, but clamp to max for perception for (var i = 0; i < enemies.length; i++) { enemies[i].orbitSpeed = Math.min(enemies[i].orbitSpeed * 1.5, 0.045); // Clamp to max enemies[i].speed = Math.min(enemies[i].speed * 1.25, 7); // Clamp to max } // Add more enemies as levels increase, up to a max var maxEnemies = 10; var desiredEnemies = Math.min(3 + Math.floor(currentLevel / 2), maxEnemies); while (enemies.length < desiredEnemies) { var newEnemy = game.addChild(new Enemy()); // Distribute orbits and angles for variety var baseRadius = 200 + 150 * (enemies.length % 5); newEnemy.orbitRadius = baseRadius + Math.floor(Math.random() * 100); newEnemy.orbitAngle = Math.random() * Math.PI * 2; // Alternate orbit direction for variety newEnemy.orbitSpeed = 0.004 + 0.001 * currentLevel + Math.random() * 0.002; if (enemies.length % 2 === 1) newEnemy.orbitSpeed *= -1; // Add some with variable speed newEnemy.speed = 1.2 + Math.random() * 1.5; enemies.push(newEnemy); } // Add rotation/orbit variants: some reverse, some elliptical for (var k = 0; k < enemies.length; k++) { // Every 3rd enemy or at higher levels, make elliptical orbits if ((k + currentLevel) % 3 === 0 && currentLevel > 4) { enemies[k].ellipseA = enemies[k].orbitRadius; enemies[k].ellipseB = Math.max(120, enemies[k].orbitRadius - 60 - Math.random() * 80); enemies[k].isElliptical = true; } else { enemies[k].isElliptical = false; } // Alternate direction for more chaos if (currentLevel > 6 && k % 2 === 0) { enemies[k].orbitSpeed = -Math.abs(enemies[k].orbitSpeed); } else { enemies[k].orbitSpeed = Math.abs(enemies[k].orbitSpeed); } } // Reset player to starting position for next level player.radius = 1200; player.angle = Math.random() * Math.PI * 2; player.x = centerX + player.radius * Math.cos(player.angle); player.y = centerY + player.radius * Math.sin(player.angle); // Optionally, randomize enemy orbits a bit for variety for (var j = 0; j < enemies.length; j++) { enemies[j].orbitAngle = Math.random() * Math.PI * 2; } } else { // Completed all levels, show win LK.showYouWin(); } } player.lastRadius = player.radius; // Move player towards the center if right mouse button is held down (extra boost) if (typeof rightMouseDown !== "undefined" && rightMouseDown) { // Each frame, move the player 3.5px closer to the center, but not below a minimum radius of 80 player.radius = Math.max(80, player.radius - 3.5); player.x = centerX + player.radius * Math.cos(player.angle); player.y = centerY + player.radius * Math.sin(player.angle); } // Rotate player if left mouse button is held down if (typeof leftMouseDown !== "undefined" && leftMouseDown) { player.angle += 0.035; // Slower, smoother rotation for perception player.x = centerX + player.radius * Math.cos(player.angle); player.y = centerY + player.radius * Math.sin(player.angle); } enemies.forEach(function (enemy) { enemy.orbitAngle += enemy.orbitSpeed; if (enemy.isElliptical) { // Elliptical orbit var a = enemy.ellipseA || enemy.orbitRadius; var b = enemy.ellipseB || enemy.orbitRadius - 60; enemy.x = centerX + a * Math.cos(enemy.orbitAngle); enemy.y = centerY + b * Math.sin(enemy.orbitAngle); } else { // Circular orbit enemy.x = centerX + enemy.orbitRadius * Math.cos(enemy.orbitAngle); enemy.y = centerY + enemy.orbitRadius * Math.sin(enemy.orbitAngle); } // --- Collision detection with player --- if (enemy.lastWasIntersecting === undefined) enemy.lastWasIntersecting = false; var isIntersecting = enemy.intersects(player); if (!enemy.lastWasIntersecting && isIntersecting) { // Collision just started, trigger game over LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } enemy.lastWasIntersecting = isIntersecting; }); };
===================================================================
--- original.js
+++ change.js
@@ -145,9 +145,14 @@
var enemies = [enemy, enemy2, enemy3];
// Update method for orbiting
game.update = function () {
// Gravity: each frame, pull the player a bit toward the center
- var gravityStrength = 1.1; // Lowered for better perception
+ if (typeof currentLevel === "undefined") {
+ var gravityStrength = 1.1;
+ } else {
+ // Increase gravityStrength by 0.001 per level (in thousandths)
+ var gravityStrength = 1.1 + (currentLevel - 1) * 0.001;
+ }
player.radius = Math.max(80, player.radius - gravityStrength);
player.x = centerX + player.radius * Math.cos(player.angle);
player.y = centerY + player.radius * Math.sin(player.angle);
// --- LEVEL SYSTEM: Track and progress levels up to 20 ---
Dead
Sound effect
MusicaInicio
Music
musica4
Music
musica1
Music
musica7
Music
musica10
Music
musica13
Music
musica16
Music
musica19
Music
musica22
Music
musica25
Music
musica28
Music
musica2
Music
musica3
Music
musica5
Music
musica6
Music
musica8
Music
musica9
Music
musica11
Music
musica12
Music
musica14
Music
musica15
Music
musica17
Music
musica18
Music
musica20
Music
musica21
Music
musica23
Music
musica24
Music
musica26
Music
musica27
Music
musica29
Music
musica30
Music