User prompt
Make statu time of 10 sec in all levels as level 1. Remove statu time of 8 sec in level 3 and make it 10 seconds
User prompt
Add time statu 10 sec to level3. if time in level3 reach 0 go to next level
User prompt
Play wall3 from bottom to top only.Add another respawning of wall3 from right
User prompt
If level3 start hide walls of level2, if player touch walls of level2 in level3 don't play gameover. Add wall3 to respan from bottom to the top vertical, and respawning from right horizontal. Decres time in level3 10 sec to 0.
User prompt
Make the statu time for all levels decreasing from 10 sec to 0
User prompt
If time reach 0 go to next level
User prompt
make level3 and its background from assets
User prompt
Add background3 to level3, make inisialisation to level3 for now
User prompt
Add Bachground1 asset for level1
User prompt
Remove background1 from game
User prompt
Please fix the bug: 'Timeout.tick error: Cannot read properties of null (reading 'width')' in or related to this line: 'background = game.addChildAt(LK.getAsset('Background2', {' Line Number: 156
User prompt
Please fix the bug: 'Timeout.tick error: Cannot read properties of undefined (reading 'width')' in or related to this line: 'background = game.addChildAt(LK.getAsset('Background2', {' Line Number: 156
User prompt
center it
User prompt
Adjust the screen to fit the background
User prompt
Fit it to screen
User prompt
add background to level1
User prompt
Add backgrounds to levels
User prompt
change the background in level1 to Image of the asset Background1
User prompt
If level1 playay background1, if level2 playay background2 assets.
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'scale')' in or related to this line: 'background.scale.set(game.width / background.width, game.height / background.height);' Line Number: 179
User prompt
Make background2 for level2 and background1 for level1.
User prompt
Remove it from level1 show it only in level2.
User prompt
Add the background2 to level2
User prompt
If level 2 start don't play any image of asset bachgrounds
User prompt
Remove the background in level2
/**** * Classes ****/ // Create a Player class var Player = Container.expand(function () { var self = Container.call(this); // Attach a shape asset to represent the player var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); // Set player speed self.speed = 50; // This is automatically called every game tick, if the player is attached! self.update = function () { // No continuous movement }; }); // Create a RandomShape class for shapes spawning from top and left var RandomShape = Container.expand(function () { var self = Container.call(this); // Attach a random shape asset to represent the shape var shapeGraphics = self.attachAsset('shape' + Math.floor(Math.random() * 10), { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200, // Random width between 0 and 200 height: Math.random() * 200 // Random height between 0 and 200 }); // Set shape speed self.speed = 2; // This is automatically called every game tick, if the shape is attached! self.update = function () { // Randomly decide the direction of the shape if (Math.random() < 0.5) { self.y += self.speed; } else { self.x += self.speed; } }; }); // Create a Wall2 class for wall2 spawning from top and moving vertically to the bottom var Wall2 = Container.expand(function () { var self = Container.call(this); // Attach a wall2 asset to represent the wall var wallGraphics = self.attachAsset('wall2', { anchorX: 0.5, anchorY: 0.5, height: 200 // Make the wall taller }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; }; }); // Create a WallHorizontal class for taller horizontal walls spawning from right var WallHorizontal = Container.expand(function () { var self = Container.call(this); // Attach a wall asset to represent the wall var wallGraphics = self.attachAsset('wall1', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100 // Make the wall wider and random }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x -= self.speed; }; }); // Create a WallVertical class for vertical walls spawning from top var WallVertical = Container.expand(function () { var self = Container.call(this); // Attach a wall asset to represent the wall var wallGraphics = self.attachAsset('wall1', { anchorX: 0.5, anchorY: 0.5, height: Math.random() * 200 + 100 // Make the wall taller and random }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; }; }); // Create a WallVertical2 class for taller vertical walls spawning from top to bottom var WallVertical2 = Container.expand(function () { var self = Container.call(this); // Attach a wall asset to represent the wall var wallGraphics = self.attachAsset('wall1', { anchorX: 0.5, anchorY: 0.5, height: Math.random() * 200 + 100 // Make the wall taller and random }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var background; function setBackgroundForLevel(level) { if (background) { background.destroy(); // Remove the current background } if (level === 1) { background = game.addChildAt(LK.getAsset('Background1', { anchorX: 0.0, anchorY: 0.0, x: (game.width - background.width * background.scale.x) / 2, y: (game.height - background.height * background.scale.y) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); } else if (level === 2) { background = game.addChildAt(LK.getAsset('Background2', { anchorX: 0.0, anchorY: 0.0, x: (game.width - background.width * background.scale.x) / 2, y: (game.height - background.height * background.scale.y) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); } else if (level === 3) { background = game.addChildAt(LK.getAsset('Background3', { anchorX: 0.0, anchorY: 0.0, x: (game.width - background.width * background.scale.x) / 2, y: (game.height - background.height * background.scale.y) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); } if (background) { background.scale.set(game.width / background.width, game.height / background.height); } } setBackgroundForLevel(level); var level = 1; // Initialize timer for each level var timers = Array(10).fill(10); var timer = timers[level - 1]; // Initialize background var background; if (level === 2) { background = game.addChildAt(LK.getAsset('Background2', { anchorX: 0.0, anchorY: 0.0, width: game.width, height: game.height, x: 0, y: 0 }), 0); } else if (level === 3) { background = game.addChildAt(LK.getAsset('Background3', { anchorX: 0.0, anchorY: 0.0, width: game.width, height: game.height, x: 0, y: 0 }), 0); } // Fit the background to the screen if it is defined if (background) { background.scale.set(game.width / background.width, game.height / background.height); background.width = game.width; background.height = game.height; } // Add level text on the top right corner var levelText = new Text2('Level 1', { size: 100, fill: 0x808080 // Grey color }); levelText.anchor.set(1, 0); // Sets anchor to the right of the top edge of the text. LK.gui.topRight.addChild(levelText); // Add timer on the top left corner var timerText = new Text2('Time: ' + timer, { size: 100, fill: 0x808080 // Grey color }); timerText.anchor.set(0, 0); // Sets anchor to the left of the top edge of the text. LK.gui.topLeft.addChild(timerText); // Decrease timer every second and update timer text var timerInterval = LK.setInterval(function () { if (timer > 0) { timer--; timerText.setText('Time: ' + timer); } else { LK.clearInterval(timerInterval); level += 1; // Increase level levelText.setText('Level ' + level); // Update level text timer = 10; // Reset timer for each level timerText.setText('Time: ' + timers[level - 1]); // Change background for the new level setBackgroundForLevel(level); // Restart the timer for the next level timerInterval = LK.setInterval(function () { if (timer > 0) { timer--; timerText.setText('Time: ' + timer); } else { LK.clearInterval(timerInterval); } }, 1000); } }, 1000); // Initialize 10 background assets for each level for (var i = 1; i <= 10; i++) {} // Initialize a player instance and attach it to the game var player = game.addChild(new Player()); // Position player at the center of the screen player.x = game.width / 2; player.y = game.height / 2; // Show player on the screen for level 2 if (level === 2) { player.visible = true; player.x = game.width / 2; player.y = 0; } // Initialize dragNode var dragNode = null; // Removed maze regeneration and player reinitialization // Removed player movement and click event listener related to the maze // Function to generate a random maze // Add event listener for player movement // Removed game.down event listener as it's not needed // Update game loop to move player towards target position var targetPosition = null; game.update = function () { if (targetPosition) { var dx = targetPosition.x - player.x; var dy = targetPosition.y - player.y; var angle = Math.atan2(dy, dx); player.x += Math.cos(angle) * player.speed; player.y += Math.sin(angle) * player.speed; } // Create random vertical and horizontal walls for wall1 in level 1 only if (level === 1 && LK.ticks % 60 == 0) { var newWall; if (Math.random() < 0.5) { newWall = new WallVertical(); newWall.x = Math.random() * (game.width - newWall.width) + newWall.width / 2; newWall.y = 0; } else { newWall = new WallHorizontal(); newWall.x = game.width; newWall.y = Math.random() * (game.height - newWall.height) + newWall.height / 2; } game.addChild(newWall); } // Hide walls from level 1 when level 2 starts if (level === 2) { for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal) { game.children[i].visible = false; } } } // Add wall2 to level 2 as objects respawning randomly from top to bottom if (level === 2 && LK.ticks % 60 == 0) { var newWall2 = new Wall2(); newWall2.x = Math.random() * (game.width - newWall2.width) + newWall2.width / 2; newWall2.y = 0; game.addChild(newWall2); } // Check if player intersects with any wall for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal || game.children[i] instanceof Wall2) { if (player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } } }; // Add event listeners for player movement // Define handleMove function function handleMove(x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; } } game.down = function (x, y, obj) { dragNode = player; handleMove(x, y, obj); }; game.move = handleMove; // Removed game.move event listener as it's not needed // Removed player movement towards target position in game update game.up = function (x, y, obj) { dragNode = null; };
===================================================================
--- original.js
+++ change.js
@@ -122,26 +122,26 @@
if (level === 1) {
background = game.addChildAt(LK.getAsset('Background1', {
anchorX: 0.0,
anchorY: 0.0,
- x: 0,
- y: 0
+ x: (game.width - background.width * background.scale.x) / 2,
+ y: (game.height - background.height * background.scale.y) / 2
}), 0);
background.scale.set(game.width / background.width, game.height / background.height);
} else if (level === 2) {
background = game.addChildAt(LK.getAsset('Background2', {
anchorX: 0.0,
anchorY: 0.0,
- x: 0,
- y: 0
+ x: (game.width - background.width * background.scale.x) / 2,
+ y: (game.height - background.height * background.scale.y) / 2
}), 0);
background.scale.set(game.width / background.width, game.height / background.height);
} else if (level === 3) {
background = game.addChildAt(LK.getAsset('Background3', {
anchorX: 0.0,
anchorY: 0.0,
- x: 0,
- y: 0
+ x: (game.width - background.width * background.scale.x) / 2,
+ y: (game.height - background.height * background.scale.y) / 2
}), 0);
background.scale.set(game.width / background.width, game.height / background.height);
}
if (background) {