User prompt
Add collision to exit
User prompt
Show the exit in level1.
User prompt
Add exit in all levels
User prompt
Spawn the exit in its logic position when level1 is start.
User prompt
Make it on the front of the screen.
User prompt
Add exit image to level1 make it below level text
User prompt
Add exit class and logic to the game
User prompt
make it inside the screen
User prompt
Make it bigger
User prompt
set the exit as exit in level1 as image in the middle
User prompt
center it
User prompt
make it visible
User prompt
Make it on the top right corner
User prompt
Make exit the exit object in level1
User prompt
Add exit object asset to the game and make it small. Add the exit image asset In level1 in the top right corner.
User prompt
Make player position on the bottom left corner in level1.
User prompt
Lower the player position little bit in level1.
User prompt
Don't rest time in level10 do game over .
User prompt
Don't release the player only if level changed to rest it's position in that level.
User prompt
Make collision for level10.
User prompt
Make the top right corner walls go to the bottom left corner for level10. Make the top left corner walls go to the bottom right corner for level10.
User prompt
Remove the respawning walls from bottom corners in level10.
User prompt
Reduce walls and add another spawning wall10 from the 4 corners
User prompt
Don't respawn walls randomly from top respawn them from the 4 corners only and in the screen not outside it in level10.
User prompt
Make random spawning walls from all corners for level10 with its wall wall10.
/**** * Classes ****/ // Create a DodgingObject class for objects in level 10 var DodgingObject = Container.expand(function () { var self = Container.call(this); // Attach a random shape asset to represent the dodging object var dodgingGraphics = self.attachAsset('shape' + Math.floor(Math.random() * 10), { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 100 + 50, // Random width between 50 and 150 height: Math.random() * 100 + 50 // Random height between 50 and 150 }); // Set dodging object speed self.speed = 4; // This is automatically called every game tick, if the dodging object is attached! self.update = function () { self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); var Exit = Container.expand(function () { var self = Container.call(this); // Attach the exit asset to represent the exit point var exitGraphics = self.attachAsset('exit', { anchorX: 0.5, anchorY: 0.5 }); // Set initial position and scale self.x = game.width / 2; self.y = game.height / 2; self.scale.set(2, 2); self.visible = true; }); // 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 Wall class for walls with configurable movement and dimensions var Wall = Container.expand(function (options) { var self = Container.call(this); var wallGraphics = self.attachAsset(options.assetId, { anchorX: 0.5, anchorY: 0.5, width: options.width || Math.random() * 100 + 50, height: options.height || Math.random() * 600 + 300 }); self.speed = options.speed || 4; self.update = function () { if (options.direction === 'vertical') { self.y += self.speed; if (self.y > game.height) { self.y = -self.height; // Increase distance by starting above the screen self.x = Math.random() * (game.width - self.width) + self.width / 2; } } else if (options.direction === 'horizontal') { self.x += self.speed; if (self.x > game.width) { self.x = -self.width; // Increase distance by starting left of the screen self.y = Math.random() * (game.height - self.height) + self.height / 2; } } }; }); var Wall10 = Container.expand(function () { var self = Container.call(this); var wallGraphics = self.attachAsset('wall10', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 400 + 200 }); self.speed = 6; self.update = function () { self.y += self.speed; if (self.y > game.height) { self.y = 0; self.x = Math.random() * (game.width - self.width) + self.width / 2; } }; }); // Create a Wall2 class for walls in level 2 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, width: Math.random() * 200 + 100, height: Math.random() * 600 + 400 }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = -self.height; // Increase distance by starting above the screen self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall2Horizontal class for large horizontal walls moving from left to right in level 2 var Wall2Horizontal = 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, width: 600, // Set a large width for the wall height: 100 // Set a fixed height for the wall }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x += self.speed; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall3 class for walls respawning from bottom to top var Wall3 = Container.expand(function () { var self = Container.call(this); // Attach a wall3 asset to represent the wall var wallGraphics = self.attachAsset('wall3', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 600 + 400 // Increase height for bottom side vertical walls in level 3 }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y -= self.speed; // Move upwards if (self.y < 0) { self.y = game.height + self.height; // Increase distance by starting below the screen self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall3Right class for walls spawning from right to left var Wall3Right = Container.expand(function () { var self = Container.call(this); // Attach a wall3 asset to represent the wall var wallGraphics = self.attachAsset('wall3', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 600 + 400, // Increase width for larger horizontal walls on the right side in level 3 // Increase width for larger horizontal walls on the right side in level 3 height: Math.random() * 200 + 100 // Random height }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x -= self.speed; // Move leftwards }; }); // Create a Wall4 class for walls moving horizontally from left to right var Wall4 = Container.expand(function () { var self = Container.call(this); // Attach a wall4 asset to represent the wall var wallGraphics = self.attachAsset('wall4', { anchorX: 0.5, anchorY: 0.5, width: 400, height: 100 // Set fixed dimensions for top respawning walls }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x += self.speed; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall4Horizontal class for walls spawning randomly from left and right horizontally var Wall4Horizontal = Container.expand(function () { var self = Container.call(this); // Attach a wall4 asset to represent the wall var wallGraphics = self.attachAsset('wall4', { width: Math.random() * 400 + 200 // Increase width for level 4 }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { if (Math.random() < 0.5) { self.x -= self.speed; // Move leftwards } else { self.x += self.speed; // Move rightwards } }; }); // Create a Wall4Vertical class for walls moving vertically from top to bottom var Wall4Vertical = Container.expand(function () { var self = Container.call(this); // Attach a wall4 asset to represent the wall var wallGraphics = self.attachAsset('wall4', { width: 100, // Set fixed width for left respawning walls height: Math.random() * 600 + 300 // Increase height for level 4 }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y -= self.speed; // Move upwards if (self.y < 0) { self.y = game.height; // Reset position to the bottom when reaching the top edge self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall5 class for walls with random shapes var Wall5 = Container.expand(function () { var self = Container.call(this); // Attach a wall5 asset to represent the wall var wallGraphics = self.attachAsset('wall5', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 100 + 50, // Random width height: Math.random() * 400 + 200 // Increase height to make walls taller }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { // Move vertically from top to bottom self.x += self.speed; // Move rightwards self.y -= self.speed; // Move upwards if (self.x > game.width || self.y < 0) { self.x = 0; // Reset position to the left self.y = game.height; // Reset position to the bottom } // Move horizontally from left to right self.x += self.speed; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall5Horizontal class for walls respawning horizontally in level 5 var Wall5Horizontal = Container.expand(function () { var self = Container.call(this); // Attach a wall5 asset to represent the wall var wallGraphics = self.attachAsset('wall5', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 400 + 200, height: Math.random() * 200 + 100 }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { // Move horizontally from left to right self.x += self.speed; if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall5Vertical class for walls respawning vertically in level 5 var Wall5Vertical = Container.expand(function () { var self = Container.call(this); // Attach a wall5 asset to represent the wall var wallGraphics = self.attachAsset('wall5', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 400 + 200 }); // Set wall speed self.speed = 4; // This is automatically called every game tick, if the wall is attached! self.update = function () { // Move vertically from top to bottom self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall6 class for walls respawning from bottom to top var Wall6 = Container.expand(function () { var self = Container.call(this); // Attach a wall6 asset to represent the wall var wallGraphics = self.attachAsset('wall6', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 100 + 50, height: Math.random() * 400 + 200 // Increase height to make walls taller }); // 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; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall6BottomRight class for walls respawning from bottom right corner var Wall6BottomRight = Container.expand(function () { var self = Container.call(this); // Attach a wall6 asset to represent the wall var wallGraphics = self.attachAsset('wall6', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 200 + 100 }); // 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; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall6Horizontal class for taller horizontal walls spawning from left to right var Wall6Horizontal = Container.expand(function () { var self = Container.call(this); // Attach a wall6 asset to represent the wall var wallGraphics = self.attachAsset('wall6', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 400 + 200 // Make the wall wider and random }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x += self.speed; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall6TopLeft class for walls respawning randomly with random shapes from the top left corner var Wall6TopLeft = Container.expand(function () { var self = Container.call(this); // Attach a wall6 asset to represent the wall var wallGraphics = self.attachAsset('wall6', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 200 + 100 }); // 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; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall6Vertical class for taller vertical walls spawning from top to bottom var Wall6Vertical = Container.expand(function () { var self = Container.call(this); // Attach a wall6 asset to represent the wall var wallGraphics = self.attachAsset('wall6', { anchorX: 0.5, anchorY: 0.5, height: Math.random() * 400 + 200 // Make the wall taller and random }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top when reaching the bottom edge self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall7 class for walls respawning from different directions var Wall7 = Container.expand(function () { var self = Container.call(this); // Attach a wall7 asset to represent the wall var wallGraphics = self.attachAsset('wall7', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 400 + 200 // Increase height to make walls 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; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall7Horizontal class for walls respawning from left to right var Wall7Horizontal = Container.expand(function () { var self = Container.call(this); // Attach a wall7 asset to represent the wall var wallGraphics = self.attachAsset('wall7', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 400 + 200 // 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; // Move rightwards if (self.x > game.width) { self.x = 0; // Reset position to the left when reaching the right edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // Create a Wall7Vertical class for walls respawning from top to bottom var Wall7Vertical = Container.expand(function () { var self = Container.call(this); // Attach a wall7 asset to represent the wall var wallGraphics = self.attachAsset('wall7', { anchorX: 0.5, anchorY: 0.5, height: Math.random() * 200 + 100 // Reduce height for level 7 }); // Set wall speed self.speed = 6; // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top when reaching the bottom edge self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall8 class for walls in level 8 var Wall8 = Container.expand(function () { var self = Container.call(this); // Attach a wall8 asset to represent the wall var wallGraphics = self.attachAsset('wall8', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 400 + 200 // Increase height to make walls 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; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall8BottomRight class for walls spawning from bottom right var Wall8BottomRight = Container.expand(function () { var self = Container.call(this); // Attach a wall8 asset to represent the wall var wallGraphics = self.attachAsset('wall8', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 400 + 200, // Increase height to make walls taller rotation: -Math.PI / 6 // Rotate 30 degrees to the left }); // 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; // Move leftwards self.y -= self.speed; // Move upwards if (self.x < 0 || self.y < 0) { self.x = game.width - 100; // Reset position to the right with spacing self.y = game.height - 100; // Reset position to the bottom with spacing } }; }); // Create a Wall9 class for walls in level 9 var Wall9 = Container.expand(function () { var self = Container.call(this); // Attach a wall9 asset to represent the wall var wallGraphics = self.attachAsset('wall9', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 200 + 100 // Reduce height for level 9 }); // Set wall speed self.speed = 6; // Increase speed for level 9 // This is automatically called every game tick, if the wall is attached! self.update = function () { self.y += self.speed; // Move downwards if (self.y > game.height) { self.y = 0; // Reset position to the top self.x = Math.random() * (game.width - self.width) + self.width / 2; // Randomize horizontal position } }; }); // Create a Wall9LeftBottom class for walls respawning from left to bottom var Wall9LeftBottom = Container.expand(function () { var self = Container.call(this); // Attach a wall9 asset to represent the wall var wallGraphics = self.attachAsset('wall9', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 200 + 100, // Reduce height for level 9 rotation: Math.PI / 6 // Rotate 60 degrees to the left }); // Set wall speed self.speed = 6; // Increase speed for level 9 // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x -= self.speed; // Move leftwards self.y += self.speed; // Move downwards if (self.x < 0 || self.y > game.height) { self.x = game.width; // Reset position to the right self.y = 0; // Reset position to the top } }; }); // Create a Wall9LeftTop class for walls respawning from left to top var Wall9LeftTop = Container.expand(function () { var self = Container.call(this); // Attach a wall9 asset to represent the wall var wallGraphics = self.attachAsset('wall9', { anchorX: 0.5, anchorY: 0.5, width: Math.random() * 200 + 100, height: Math.random() * 200 + 100 // Reduce height for level 9 }); // Set wall speed self.speed = 6; // Increase speed for level 9 // This is automatically called every game tick, if the wall is attached! self.update = function () { self.x += self.speed; // Move rightwards self.y -= self.speed; // Move upwards if (self.x > game.width || self.y < 0) { self.x = 0; // Reset position to the left self.y = game.height; // Reset position to the bottom } }; }); // 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() * 600 + 300 // Further increase the width for level 1 }); // 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; // Move leftwards if (self.x < 0) { self.x = game.width; // Reset position to the right when reaching the left edge self.y = Math.random() * (game.height - self.height) + self.height / 2; // Randomize vertical position } }; }); // 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() * 600 + 300 // Increase height to make walls even 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 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 ****/ function _typeof2(o) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof2(o); } function _defineProperty2(e, r, t) { return (r = _toPropertyKey2(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey2(t) { var i = _toPrimitive2(t, "string"); return "symbol" == _typeof2(i) ? i : i + ""; } function _toPrimitive2(t, r) { if ("object" != _typeof2(t) || !t) { return t; } var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof2(i)) { return i; } throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) { return t; } var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) { return i; } throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var background = null; 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 - LK.getAsset('Background1', {}).width * game.width / LK.getAsset('Background1', {}).width) / 2, y: (game.height - LK.getAsset('Background1', {}).height * game.height / LK.getAsset('Background1', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 1 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom exit.visible = true; // Ensure the exit is visible game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 2) { levelText.setText('Level 2'); // Update level text for level 2 background = game.addChildAt(LK.getAsset('Background2', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background2', {}).width * game.width / LK.getAsset('Background2', {}).width) / 2, y: (game.height - LK.getAsset('Background2', {}).height * game.height / LK.getAsset('Background2', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 2 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 3) { levelText.setText('Level 3'); // Update level text for level 3 background = game.addChildAt(LK.getAsset('Background3', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background3', {}).width * game.width / LK.getAsset('Background3', {}).width) / 2, y: (game.height - LK.getAsset('Background3', {}).height * game.height / LK.getAsset('Background3', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 3 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 4) { levelText.setText('Level 4'); // Update level text for level 4 background = game.addChildAt(LK.getAsset('Background4', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background4', {}).width * game.width / LK.getAsset('Background4', {}).width) / 2, y: (game.height - LK.getAsset('Background4', {}).height * game.height / LK.getAsset('Background4', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 4 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 5) { levelText.setText('Level 5'); // Update level text for level 5 background = game.addChildAt(LK.getAsset('Background5', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background5', {}).width * game.width / LK.getAsset('Background5', {}).width) / 2, y: (game.height - LK.getAsset('Background5', {}).height * game.height / LK.getAsset('Background5', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 5 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 6) { levelText.setText('Level 6'); // Update level text for level 6 background = game.addChildAt(LK.getAsset('Background6', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background6', {}).width * game.width / LK.getAsset('Background6', {}).width) / 2, y: (game.height - LK.getAsset('Background6', {}).height * game.height / LK.getAsset('Background6', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 6 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 7) { levelText.setText('Level 7'); // Update level text for level 7 background = game.addChildAt(LK.getAsset('Background7', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background7', {}).width * game.width / LK.getAsset('Background7', {}).width) / 2, y: (game.height - LK.getAsset('Background7', {}).height * game.height / LK.getAsset('Background7', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 7 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 8) { levelText.setText('Level 8'); // Update level text for level 8 background = game.addChildAt(LK.getAsset('Background8', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background8', {}).width * game.width / LK.getAsset('Background8', {}).width) / 2, y: (game.height - LK.getAsset('Background8', {}).height * game.height / LK.getAsset('Background8', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 8 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 9) { levelText.setText('Level 9'); // Update level text for level 9 background = game.addChildAt(LK.getAsset('Background9', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background9', {}).width * game.width / LK.getAsset('Background9', {}).width) / 2, y: (game.height - LK.getAsset('Background9', {}).height * game.height / LK.getAsset('Background9', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 9 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } else if (level === 10) { levelText.setText('Level 10'); // Update level text for level 10 background = game.addChildAt(LK.getAsset('Background10', { anchorX: 0.0, anchorY: 0.0, x: (game.width - LK.getAsset('Background10', {}).width * game.width / LK.getAsset('Background10', {}).width) / 2, y: (game.height - LK.getAsset('Background10', {}).height * game.height / LK.getAsset('Background10', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); // Add exit asset to level 10 var exit = new Exit(); exit.x = game.width - exit.width / 2; // Logical position for exit on the right side exit.y = game.height - exit.height / 2; // Logical position for exit at the bottom game.addChild(exit); game.setChildIndex(exit, game.children.length - 1); // Move exit to the front } if (background) { background.scale.set(game.width / background.width, game.height / background.height); } } setBackgroundForLevel(level); var level = 1; var levelChangeInterval = 10 * 60; // 10 seconds for all levels at 60 FPS var levelChangeTimer = 0; if (level === 7) { if (LK.ticks % 60 == 0) { var newWall7 = new Wall7(); newWall7.x = 0; // Start from the left newWall7.y = game.height - newWall7.height; // Start from the bottom newWall7.visible = true; // Ensure visibility game.addChild(newWall7); } if (LK.ticks % 60 == 0) { var newWall7 = new Wall7(); newWall7.x = Math.random() * (game.width - newWall7.width); // Ensure Wall7 spawns within screen boundaries newWall7.y = 0; // Start from the top newWall7.visible = true; // Ensure visibility game.addChild(newWall7); var newWall7Horizontal = new Wall7Horizontal(); newWall7Horizontal.x = 0; newWall7Horizontal.y = Math.random() * (game.height - newWall7Horizontal.height) + newWall7Horizontal.height / 2; game.addChild(newWall7Horizontal); var newWall7Vertical = new Wall7Vertical(); newWall7Vertical.x = Math.random() * (game.width - newWall7Vertical.width) + newWall7Vertical.width / 2; newWall7Vertical.y = 0; game.addChild(newWall7Vertical); } // Ensure Wall7 objects are visible and can be touched for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof Wall7 && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } } // Ensure Wall5 objects are not respawning in any level for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof Wall5 || game.children[i] instanceof Wall5Vertical || game.children[i] instanceof Wall5Horizontal) { game.children[i].visible = false; } } var background; if (level === 1) { background = game.addChildAt(LK.getAsset('Background1', { 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, x: (game.width - LK.getAsset('Background3', {}).width * game.width / LK.getAsset('Background3', {}).width) / 2, y: (game.height - LK.getAsset('Background3', {}).height * game.height / LK.getAsset('Background3', {}).height) / 2 }), 0); background.scale.set(game.width / background.width, game.height / background.height); } // 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); // Initialize 10 background assets for each level for (var i = 1; i <= 10; i++) {} // Add time text on the top left corner var timeText = new Text2('Time: 0', { size: 100, fill: 0x808080 // Grey color }); timeText.anchor.set(0, 0); // Sets anchor to the left of the top edge of the text. LK.gui.topLeft.addChild(timeText); // Initialize a player instance and attach it to the game var player = game.addChild(new Player()); // Position player at the bottom left corner for level 1 if (level === 1) { player.x = player.width / 2; player.y = game.height - player.height / 2; } else if (level === 2) { player.x = game.width - player.width / 2; player.y = game.height - player.height / 2; } // Initialize dragNode var dragNode = null; // Initialize dragNode for player dragging // 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 newWall1; if (Math.random() < 0.5) { newWall1 = new WallVertical(); newWall1.x = Math.random() * (game.width - newWall1.width) + newWall1.width / 2; newWall1.y = 0; } else { newWall1 = new WallHorizontal(); newWall1.x = game.width; newWall1.y = Math.random() * (game.height - newWall1.height) + newWall1.height / 2; } game.addChild(newWall1); } else { // Ensure Wall1 objects are not respawning in levels other than 1 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal) && level !== 1) { game.children[i].visible = false; } if (level === 2 && LK.ticks % 120 == 0) { var newWall2 = new Wall2(); newWall2.x = Math.random() * (game.width - newWall2.width) + newWall2.width / 2; newWall2.y = 0; game.addChild(newWall2); if (Math.random() < 0.5) { // 50% chance to spawn horizontal wall var newWall2Horizontal = new Wall2Horizontal(); newWall2Horizontal.x = 0; // Start from the left newWall2Horizontal.y = Math.random() * (game.height - newWall2Horizontal.height) + newWall2Horizontal.height / 2; game.addChild(newWall2Horizontal); } } // Ensure Wall2 objects are visible in level 2 and handle collisions for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof Wall2 || game.children[i] instanceof Wall2Horizontal) { game.children[i].visible = level === 2; // Ensure visibility only in level 2 if (player.intersects(game.children[i]) && game.children[i].visible) { if (!game.isGameOver) { LK.showGameOver(); game.isGameOver = true; } break; } } } // Ensure Wall1 objects are not visible in level 2 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal) && level === 2) { game.children[i].visible = false; } } } // Check if player intersects with the exit object in the current level for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof Exit && player.intersects(game.children[i])) { // Trigger level completion or transition level++; setBackgroundForLevel(level); levelText.setText('Level ' + level); player.x = player.width / 2; player.y = game.height - player.height / 2; break; } } } // Add wall3 to level 3 as objects respawning from bottom to top and right to left if (level === 3 && LK.ticks % 120 == 0) { var newWall3 = new Wall3(); newWall3.x = Math.random() * (game.width - newWall3.width) + newWall3.width / 2; newWall3.y = game.height; game.addChild(newWall3); var newWall3Right = new Wall3Right(); newWall3Right.x = game.width; newWall3Right.y = Math.random() * (game.height - newWall3Right.height) + newWall3Right.height / 2; game.addChild(newWall3Right); // Ensure Wall3 objects are visible in level 3 for (var i = 0; i < game.children.length; i++) {} } else if (level !== 3) { // Ensure Wall3 objects are not respawning in levels other than 3 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall3 || game.children[i] instanceof Wall3Right) && level !== 3) { game.children[i].visible = false; } } } // Add collision detection for Wall3 and Wall3Right in level 3 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall3 || game.children[i] instanceof Wall3Right) && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } // Add Wall4 objects to level 4 with horizontal spawning from left to right if (level === 4 && LK.ticks % 120 == 0) { // Add collision detection for Wall4 and Wall4Vertical in level 4 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall4 || game.children[i] instanceof Wall4Vertical) && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } // Reduce frequency by increasing tick interval var newWall4Horizontal = new Wall4(); newWall4Horizontal.x = 0; // Start from the left newWall4Horizontal.y = Math.random() * (game.height - newWall4Horizontal.height) + newWall4Horizontal.height / 2; game.addChild(newWall4Horizontal); if (Math.random() < 0.5) { // Randomly decide to add a vertical wall var newWall4Vertical = new Wall4Vertical(); newWall4Vertical.x = Math.random() * (game.width - newWall4Vertical.width) + newWall4Vertical.width / 2; newWall4Vertical.y = 0; // Start from the top game.addChild(newWall4Vertical); } } else if (level === 5) { // Remove Wall4 and Wall4Vertical objects in level 5 for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Wall4 || game.children[i] instanceof Wall4Vertical) { game.children[i].destroy(); // Remove the wall from the game game.children.splice(i, 1); // Remove the wall from the children array } } // Add Wall5 objects with random shapes in level 5 if (LK.ticks % 120 == 0) { var newWall5Vertical = new Wall5Vertical(); newWall5Vertical.x = Math.random() * (game.width - newWall5Vertical.width) + newWall5Vertical.width / 2; newWall5Vertical.y = 0; game.addChild(newWall5Vertical); var newWall5Horizontal = new Wall5Horizontal(); newWall5Horizontal.x = 0; newWall5Horizontal.y = Math.random() * (game.height - newWall5Horizontal.height) + newWall5Horizontal.height / 2; game.addChild(newWall5Horizontal); } } else { // Ensure Wall5 objects are not respawning in levels other than 5 and 10 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall5 || game.children[i] instanceof Wall5Vertical || game.children[i] instanceof Wall5Horizontal) && level !== 5 && level !== 10) { game.children[i].visible = false; } } } // Add collision detection for Wall5, Wall5Vertical, and Wall5Horizontal in level 5 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall5 || game.children[i] instanceof Wall5Vertical || game.children[i] instanceof Wall5Horizontal) && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } // Add Wall6Vertical and Wall6Horizontal objects to level 6 if (level === 6 && LK.ticks % 120 == 0) { var newWall6Vertical = new Wall6Vertical(); newWall6Vertical.x = Math.random() * (game.width - newWall6Vertical.width) + newWall6Vertical.width / 2; newWall6Vertical.y = 0; game.addChild(newWall6Vertical); var newWall6Horizontal = new Wall6Horizontal(); newWall6Horizontal.x = 0; newWall6Horizontal.y = Math.random() * (game.height - newWall6Horizontal.height) + newWall6Horizontal.height / 2; game.addChild(newWall6Horizontal); } if (level === 7) { if (LK.ticks % 60 == 0) { var newWall7 = new Wall7(); newWall7.x = Math.random() * (game.width - newWall7.width) + newWall7.width / 2; newWall7.y = 0; game.addChild(newWall7); var newWall7Horizontal = new Wall7Horizontal(); newWall7Horizontal.x = 0; newWall7Horizontal.y = Math.random() * (game.height - newWall7Horizontal.height) + newWall7Horizontal.height / 2; game.addChild(newWall7Horizontal); var newWall7Vertical = new Wall7Vertical(); newWall7Vertical.x = Math.random() * (game.width - newWall7Vertical.width) + newWall7Vertical.width / 2; newWall7Vertical.y = 0; game.addChild(newWall7Vertical); } // Add collision detection for Wall7, Wall7Horizontal, and Wall7Vertical in level 7 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall7 || game.children[i] instanceof Wall7Horizontal || game.children[i] instanceof Wall7Vertical) && level !== 7) { game.children[i].visible = false; } if ((game.children[i] instanceof Wall7 || game.children[i] instanceof Wall7Horizontal || game.children[i] instanceof Wall7Vertical) && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Wall6Vertical || game.children[i] instanceof Wall6Horizontal) { game.children[i].destroy(); // Remove the wall from the game game.children.splice(i, 1); // Remove the wall from the children array } } } // Add Wall8 objects to level 8 if (level === 8 && LK.ticks % 60 == 0 && levelChangeTimer < levelChangeInterval) { // Remove existing Wall7 objects for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Wall7 || game.children[i] instanceof Wall7Horizontal || game.children[i] instanceof Wall7Vertical) { game.children[i].destroy(); game.children.splice(i, 1); } } // Add new Wall8 object var newWall8 = new Wall8(); newWall8.x = Math.random() * (game.width - newWall8.width) + newWall8.width / 2; newWall8.y = 0; game.addChild(newWall8); if (Math.random() < 0.5) { // 50% chance to spawn var newWall8BottomRight = new Wall8BottomRight(); newWall8BottomRight.x = game.width; newWall8BottomRight.y = game.height; game.addChild(newWall8BottomRight); } } // Add collision detection for Wall8 and Wall8BottomRight in level 8 for (var i = 0; i < game.children.length; i++) { if ((game.children[i] instanceof Wall8 || game.children[i] instanceof Wall8BottomRight) && player.intersects(game.children[i]) && game.children[i].visible) { LK.showGameOver(); break; } } // Add Wall9 objects to level 9 if (level === 9 && LK.ticks % 60 == 0) { var newWall9 = new Wall9(); newWall9.x = Math.random() * (game.width - newWall9.width) + newWall9.width / 2; newWall9.y = 0; game.addChild(newWall9); if (Math.random() < 0.5) { // 50% chance to spawn Wall9LeftBottom var newWall9LeftBottom = new Wall9LeftBottom(); newWall9LeftBottom.x = 0; // Start from the left newWall9LeftBottom.y = game.height; // Start from the bottom game.addChild(newWall9LeftBottom); } // Hide Wall8 and Wall8BottomRight in level 9 for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof Wall8 || game.children[i] instanceof Wall8BottomRight) { game.children[i].visible = false; } } } else if (level === 10 && LK.ticks % 120 == 0) { // Reduce frequency by increasing tick interval for (var i = 0; i < 2; i++) { // Spawn two Wall10 instances var newWall10; var spawnCorner = Math.floor(Math.random() * 4); // Randomly choose a corner switch (spawnCorner) { case 0: // Top-left corner newWall10 = new Wall10(); newWall10.x = newWall10.width / 2; newWall10.y = newWall10.height / 2; newWall10.update = function () { this.x += this.speed; this.y += this.speed; if (this.x > game.width || this.y > game.height) { this.x = this.width / 2; this.y = this.height / 2; } }; break; case 1: // Top-right corner newWall10 = new Wall10(); newWall10.x = game.width - newWall10.width / 2; newWall10.y = newWall10.height / 2; newWall10.update = function () { this.x -= this.speed; this.y += this.speed; if (this.x < 0 || this.y > game.height) { this.x = game.width - this.width / 2; this.y = this.height / 2; } }; break; } game.addChild(newWall10); } } for (var i = 0; i < game.children.length; i++) { if (game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal || game.children[i] instanceof WallVertical2 || game.children[i] instanceof Wall6Vertical || game.children[i] instanceof Wall6Horizontal || game.children[i] instanceof Wall9 || game.children[i] instanceof Wall9LeftBottom || game.children[i] instanceof Wall9LeftTop || game.children[i] instanceof Wall8 && level !== 9 || game.children[i] instanceof Wall10 && level === 10) { if (level !== 9 && (game.children[i] instanceof Wall9 || game.children[i] instanceof Wall9LeftBottom || game.children[i] instanceof Wall9LeftTop)) { game.children[i].visible = false; } if (player.intersects(game.children[i]) && game.children[i].visible) { if (!(level === 2 && (game.children[i] instanceof WallVertical || game.children[i] instanceof WallHorizontal) || level === 4 && (game.children[i] instanceof Wall3 || game.children[i] instanceof Wall3Right) || level === 3 && (game.children[i] instanceof Wall3 || game.children[i] instanceof Wall3Right))) { LK.showGameOver(); break; } } } // Removed game over trigger when level 4 starts } // Increment the level change timer levelChangeTimer++; // Check if time in level 7 reaches 10 seconds if (level === 7 && levelChangeTimer >= 10 * 60) { levelChangeTimer = 0; // Reset the timer level++; // Increment the level setBackgroundForLevel(level); // Change the background for the new level levelText.setText('Level ' + level); // Update the level text } // Update the time text to show the current status time timeText.setText('Time: ' + Math.floor(levelChangeTimer / 60)); // Convert ticks to seconds // Check if it's time to change the level if (levelChangeTimer >= levelChangeInterval) { if (level === 10) { LK.showGameOver(); return; } levelChangeTimer = 0; // Reset the timer if (level < 10) { // Ensure level does not exceed 10 level++; // Increment the level } // Reset player position at the start of each new level if (level === 2) { player.x = game.width - player.width / 1.2; // Position player on the right side player.y = game.height - player.height / 1; } else if (level === 3) { player.x = levelText.width / 3.2; // Position player on the left side below the pause button player.y = levelText.height + player.height * 1.4; // Lower the player further from the pause button } else if (level === 4) { player.x = game.width - player.width / 0.6; // Position player at the top right corner player.y = levelText.height + player.height / 1; // Position player below the level text } else if (level === 5) { player.x = game.width - player.width / 1.2; // Position player at the bottom right corner player.y = game.height - player.height / 0.8; } else if (level === 6) { player.x = game.width - player.width / 1.5; // Position player at the bottom right corner player.y = game.height - player.height / 1.5; } else if (level === 7) { player.x = game.width - player.width / 2; // Position player at the bottom right corner player.y = game.height - player.height / 2; } else if (level === 9) { player.x = game.width / 2; // Position player in the middle of the bottom side player.y = game.height - player.height / 1.5; } else { player.x = player.width / 3; player.y = game.height - player.height / 3; } setBackgroundForLevel(level); // Change the background for the new level levelText.setText('Level ' + level); // Update the level text // Ensure player is not released until level changes player.visible = false; LK.setTimeout(function () { player.visible = true; }, 1000); // Delay to release player after level change } }; // 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) {}; game.move = function (x, y, obj) { var distance = Math.sqrt(Math.pow(x - player.x, 2) + Math.pow(y - player.y, 2)); var followRange = 100; // Define the range for following effect if (distance < followRange) { player.x = x; player.y = y; } }; game.up = function (x, y, obj) { dragNode = null; }; // 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; // Reset dragNode on game.up event };
===================================================================
--- original.js
+++ change.js
@@ -1061,20 +1061,18 @@
game.children[i].visible = false;
}
}
}
- // Check if player intersects with the exit object in level 1
- if (level === 1) {
- for (var i = 0; i < game.children.length; i++) {
- if (game.children[i] instanceof Exit && player.intersects(game.children[i])) {
- // Trigger level completion or transition
- level++;
- setBackgroundForLevel(level);
- levelText.setText('Level ' + level);
- player.x = player.width / 2;
- player.y = game.height - player.height / 2;
- break;
- }
+ // Check if player intersects with the exit object in the current level
+ for (var i = 0; i < game.children.length; i++) {
+ if (game.children[i] instanceof Exit && player.intersects(game.children[i])) {
+ // Trigger level completion or transition
+ level++;
+ setBackgroundForLevel(level);
+ levelText.setText('Level ' + level);
+ player.x = player.width / 2;
+ player.y = game.height - player.height / 2;
+ break;
}
}
}
// Add wall3 to level 3 as objects respawning from bottom to top and right to left