User prompt
If the mouse button clicked while cursor in position of wall2 drag the wall by cursor.
User prompt
If the mouse button is down in any walls of wall2 hold the wall with cursor and track its movement till release the mouse button.
User prompt
add drag by cursor for the wall2
User prompt
add drag logic for wall2 by cursor
User prompt
random the shapes and the positions make shapes with 2 or 3 walls.
User prompt
make it more difficult maze
User prompt
can you add more walls and generate a maze in side the 4 walls of wall1.
User prompt
add wall2 walls like 5 thin and large and small horizontal and other 5 same size vertical.
User prompt
create wall2
User prompt
Make the top wall thick vertically
User prompt
Add another wall of wall1 for the right and left and top sides
User prompt
lower it
User prompt
make it talltill the pause button only
User prompt
Make it with same size of the background right side.
User prompt
make it tall as the side of the image not tall to the top.
User prompt
add wall1 for the right side of the image background1 make it tall vertical as the size of the right side of the background1.
User prompt
add wall1 for the bottom make it large and between sides of the screen.
User prompt
Create wall1 asset
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
add position code for text and statu time and level text.
User prompt
move time to the right a bit and text to the left a bit. Let same space from middle to time and from middle to coin text.
User prompt
make same space from the middle between time text and the statue coin text.
User prompt
count in the text for each coin 0/7-1/7 2/7 so on. +1 for each coin it disappear from screen.
User prompt
Add score text like 0/7 for the coins the 7 number is displayed as the number of coins in level1.
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 3,
scaleY: 3
});
self.touchCount = 0; // Add a counter to track the number of times the coin has been touched
self.lastWasIntersecting = false; // Initialize lastWasIntersecting for tracking intersection state
// Add rotation to the coin continuously when the game start
self.update = function () {
if (self.touchCount === 0) {
self.rotation += 0.05;
}
// Check if the point reaches the coin
if (!self.lastWasIntersecting && (point.intersects(self) || Math.abs(point.x - self.x) <= self.width / 2 && Math.abs(point.y - self.y) <= self.height / 2)) {
// Increase the touch count
self.touchCount++;
// Play a sound effect
LK.getSound('coin').play();
// Add score
LK.setScore(LK.getScore() + 1);
// Update the score display to show the number of coins after a slash
scoreTxt.setText(LK.getScore() + '/7');
}
self.lastWasIntersecting = point.intersects(self) || Math.abs(point.x - self.x) <= self.width / 2 && Math.abs(point.y - self.y) <= self.height / 2;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Create and position the wall1 asset at the right side of the background1
var wall1 = LK.getAsset('wall1', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1,
// Keep the original width
scaleY: 2732 / 100 // Scale to fit the height of the screen
});
wall1.x = 2048 - wall1.width / 2; // Position at the right side
wall1.y = 2732 / 2; // Center vertically
game.addChild(wall1);
var point = LK.getAsset('point', {
anchorX: 0.5,
anchorY: 0.5
});
game.addChild(point);
// Handle mouse movement
// Add background to the game
var background = LK.getAsset('Background1', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2048 / 1000,
scaleY: 2732 / 1075
});
game.addChildAt(background, 0);
background.x = 2048 / 2;
background.y = 2732 / 2 + 115; // Lower the background a bit from the top
game.down = function (x, y, obj) {
// Set a flag to track if the mouse is down
game.isMouseDown = true;
// Check for intersection with coin assets
game.children.forEach(function (child) {
if (child instanceof Coin && point.intersects(child)) {
// Remove the coin asset from the game immediately
child.destroy();
// Play a sound effect
LK.getSound('coin').play();
// Add score
LK.setScore(LK.getScore() + 1);
// Update the score display to show the number of coins after a slash
scoreTxt.setText(LK.getScore() + '/7');
}
});
};
// Create 7 new coin assets at fixed positions
for (var i = 0; i < 7; i++) {
var newCoin = new Coin();
game.addChild(newCoin);
// Set the coins at fixed positions
if (i === 0) {
newCoin.x = 1035;
newCoin.y = 550;
} else if (i === 1) {
newCoin.x = 775;
newCoin.y = 790;
} else if (i === 2) {
newCoin.x = 640;
newCoin.y = 1485;
} else if (i === 3) {
newCoin.x = 1685;
newCoin.y = 670;
} else if (i === 4) {
newCoin.x = 640;
newCoin.y = 1840;
} else if (i === 5) {
newCoin.x = 365;
newCoin.y = 1425;
} else if (i === 6) {
newCoin.x = 1815;
newCoin.y = 1425;
} else {
newCoin.x = 200 + i * 200;
newCoin.y = 200 + i * 200;
}
console.log("Coin " + (i + 1) + " position: x=" + newCoin.x + ", y=" + newCoin.y);
}
game.up = function (x, y, obj) {
// Set a flag to track if the mouse is up
game.isMouseDown = false;
};
// Set a flag to track if the mouse is up
game.isMouseDown = false;
// Add level text to the top right side
var levelText = new Text2('Level 1', {
size: 100,
fill: 0xFFFFFF
});
levelText.anchor.set(1, 0); // Sets anchor to the top right edge of the text.
LK.gui.topRight.addChild(levelText);
// Initialize status time
var statusTime = 60; // 60 seconds = 1 minute
// Initialize status time text
var statusTimeText = new Text2(statusTime.toString(), {
size: 100,
fill: 0xFFFFFF
});
// Initialize score text to display the number of coins after a slash
var scoreTxt = new Text2('0/7', {
size: 100,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.8, 0); // Sets anchor to the top center edge of the text.
LK.gui.top.addChild(scoreTxt);
statusTimeText.anchor.set(-0.8, 0); // Sets anchor to the top center edge of the text.
LK.gui.top.addChild(statusTimeText);
// Create a timer that decreases the status time every second
var statusTimeTimer = LK.setInterval(function () {
statusTime--;
// Update the status time text
statusTimeText.setText(statusTime.toString());
// If the status time reaches 0, stop the timer and show game over
if (statusTime <= 0) {
LK.clearInterval(statusTimeTimer);
LK.showGameOver();
}
// Update the score text position to be beside the status time text
scoreTxt.x = statusTimeText.x - statusTimeText.width / 2 - scoreTxt.width / 2 - 50; // Add some space between the status coin text and the time
}, 1000); // 1000 milliseconds = 1 second
// Update the score display to show the number of coins after a slash
scoreTxt.setText(LK.getScore() + '/7');
game.move = function (x, y, obj) {
// Update the position of the point asset to the current mouse position
point.x = x;
point.y = y;
// Draw the way of cursor by point asset when its moving
var newPoint = LK.getAsset('point', {
anchorX: 0.5,
anchorY: 0.5
});
newPoint.x = x;
newPoint.y = y;
game.addChild(newPoint);
// Check for intersection with coin assets
game.children.forEach(function (child) {
if (child instanceof Coin && point.intersects(child)) {
// Remove the coin asset from the game immediately
child.destroy();
// Play a sound effect
LK.getSound('coin').play();
// Add score
LK.setScore(LK.getScore() + 1);
// Update the score display to show the number of coins after a slash
scoreTxt.setText(LK.getScore() + '/7');
}
});
}; ===================================================================
--- original.js
+++ change.js
@@ -45,18 +45,18 @@
/****
* Game Code
****/
-// Create and position the wall1 asset at the bottom of the screen
+// Create and position the wall1 asset at the right side of the background1
var wall1 = LK.getAsset('wall1', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 2048 / 100,
- // Scale to fit the width of the screen
- scaleY: 1 // Keep the original height
+ scaleX: 1,
+ // Keep the original width
+ scaleY: 2732 / 100 // Scale to fit the height of the screen
});
-wall1.x = 2048 / 2; // Center horizontally
-wall1.y = 2732 - wall1.height / 2; // Position at the bottom
+wall1.x = 2048 - wall1.width / 2; // Position at the right side
+wall1.y = 2732 / 2; // Center vertically
game.addChild(wall1);
var point = LK.getAsset('point', {
anchorX: 0.5,
anchorY: 0.5
Playable maze with orange lines. at black background.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
2d coin. Ninja face in the coin. red coin. 2 circles inside it. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Fullscreen, high definition, light, blur, small time watch, colors, wood, for a game titled "Maze" and with the description "Navigate ever-changing mazes! Each level with different background, coins, time speed. Can you finish collecting coins before time is up? Challenge your skills in Maze!". with text on banner "MAZE"!