User prompt
make bacground color white and maze wall red
User prompt
remove the grid lines just clear maze
User prompt
maze must be full screen
User prompt
maze must look bigger
Code edit (1 edits merged)
Please save this source code
User prompt
Gül's Hungry Maze
Initial prompt
a labirent game. a main character named gül is hungry. a labirent has lots of false ways. a true way is where the hamburger is in. make the main character reach the hamburger with arrow keys.
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Gul = Container.expand(function () {
var self = Container.call(this);
var gulGraphics = self.attachAsset('gul', {
anchorX: 0.5,
anchorY: 0.5
});
self.gridX = 1;
self.gridY = 1;
self.moveToGrid = function (gridX, gridY) {
self.gridX = gridX;
self.gridY = gridY;
var targetX = MAZE_OFFSET_X + gridX * CELL_SIZE + CELL_SIZE / 2;
var targetY = MAZE_OFFSET_Y + gridY * CELL_SIZE + CELL_SIZE / 2;
tween(self, {
x: targetX,
y: targetY
}, {
duration: 200,
easing: tween.easeOut
});
};
return self;
});
var Hamburger = Container.expand(function () {
var self = Container.call(this);
var hamburgerGraphics = self.attachAsset('hamburger', {
anchorX: 0.5,
anchorY: 0.5
});
self.gridX = 0;
self.gridY = 0;
self.setPosition = function (gridX, gridY) {
self.gridX = gridX;
self.gridY = gridY;
self.x = MAZE_OFFSET_X + gridX * CELL_SIZE + CELL_SIZE / 2;
self.y = MAZE_OFFSET_Y + gridY * CELL_SIZE + CELL_SIZE / 2;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2F4F2F
});
/****
* Game Code
****/
var CELL_SIZE = 60;
var MAZE_WIDTH = 15;
var MAZE_HEIGHT = 20;
var MAZE_OFFSET_X = (2048 - MAZE_WIDTH * CELL_SIZE) / 2;
var MAZE_OFFSET_Y = 200;
// Maze layout: 0 = path, 1 = wall
var mazeData = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]];
var mazeContainer = new Container();
game.addChild(mazeContainer);
// Create maze visual
for (var y = 0; y < MAZE_HEIGHT; y++) {
for (var x = 0; x < MAZE_WIDTH; x++) {
var assetName = mazeData[y][x] === 1 ? 'wall' : 'path';
var cell = LK.getAsset(assetName, {
x: MAZE_OFFSET_X + x * CELL_SIZE,
y: MAZE_OFFSET_Y + y * CELL_SIZE
});
mazeContainer.addChild(cell);
}
}
// Create Gül
var gul = new Gul();
game.addChild(gul);
gul.moveToGrid(1, 1);
// Create hamburger at exit
var hamburger = new Hamburger();
game.addChild(hamburger);
hamburger.setPosition(13, 18);
var isMoving = false;
var gameWon = false;
function canMoveTo(gridX, gridY) {
if (gridX < 0 || gridX >= MAZE_WIDTH || gridY < 0 || gridY >= MAZE_HEIGHT) {
return false;
}
return mazeData[gridY][gridX] === 0;
}
function moveGul(deltaX, deltaY) {
if (isMoving || gameWon) return;
var newX = gul.gridX + deltaX;
var newY = gul.gridY + deltaY;
if (canMoveTo(newX, newY)) {
isMoving = true;
gul.moveToGrid(newX, newY);
LK.getSound('move').play();
LK.setTimeout(function () {
isMoving = false;
// Check if reached hamburger
if (gul.gridX === hamburger.gridX && gul.gridY === hamburger.gridY) {
gameWon = true;
LK.getSound('win').play();
LK.effects.flashScreen(0xFFD700, 1000);
LK.setTimeout(function () {
LK.showYouWin();
}, 1000);
}
}, 200);
}
}
// Touch controls
var touchStartX = 0;
var touchStartY = 0;
var minSwipeDistance = 50;
game.down = function (x, y, obj) {
touchStartX = x;
touchStartY = y;
};
game.up = function (x, y, obj) {
var deltaX = x - touchStartX;
var deltaY = y - touchStartY;
var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
if (distance < minSwipeDistance) return;
if (Math.abs(deltaX) > Math.abs(deltaY)) {
// Horizontal movement
if (deltaX > 0) {
moveGul(1, 0); // Right
} else {
moveGul(-1, 0); // Left
}
} else {
// Vertical movement
if (deltaY > 0) {
moveGul(0, 1); // Down
} else {
moveGul(0, -1); // Up
}
}
};
// Add title
var titleText = new Text2("Gül's Hungry Maze", {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
titleText.x = 2048 / 2;
titleText.y = 50;
game.addChild(titleText);
// Add instructions
var instructionsText = new Text2('Swipe to move Gül to the hamburger!', {
size: 40,
fill: 0xFFFF99
});
instructionsText.anchor.set(0.5, 0);
instructionsText.x = 2048 / 2;
instructionsText.y = 130;
game.addChild(instructionsText);
game.update = function () {
// Game logic is handled in event handlers
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,166 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Gul = Container.expand(function () {
+ var self = Container.call(this);
+ var gulGraphics = self.attachAsset('gul', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.gridX = 1;
+ self.gridY = 1;
+ self.moveToGrid = function (gridX, gridY) {
+ self.gridX = gridX;
+ self.gridY = gridY;
+ var targetX = MAZE_OFFSET_X + gridX * CELL_SIZE + CELL_SIZE / 2;
+ var targetY = MAZE_OFFSET_Y + gridY * CELL_SIZE + CELL_SIZE / 2;
+ tween(self, {
+ x: targetX,
+ y: targetY
+ }, {
+ duration: 200,
+ easing: tween.easeOut
+ });
+ };
+ return self;
+});
+var Hamburger = Container.expand(function () {
+ var self = Container.call(this);
+ var hamburgerGraphics = self.attachAsset('hamburger', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.gridX = 0;
+ self.gridY = 0;
+ self.setPosition = function (gridX, gridY) {
+ self.gridX = gridX;
+ self.gridY = gridY;
+ self.x = MAZE_OFFSET_X + gridX * CELL_SIZE + CELL_SIZE / 2;
+ self.y = MAZE_OFFSET_Y + gridY * CELL_SIZE + CELL_SIZE / 2;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2F4F2F
+});
+
+/****
+* Game Code
+****/
+var CELL_SIZE = 60;
+var MAZE_WIDTH = 15;
+var MAZE_HEIGHT = 20;
+var MAZE_OFFSET_X = (2048 - MAZE_WIDTH * CELL_SIZE) / 2;
+var MAZE_OFFSET_Y = 200;
+// Maze layout: 0 = path, 1 = wall
+var mazeData = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]];
+var mazeContainer = new Container();
+game.addChild(mazeContainer);
+// Create maze visual
+for (var y = 0; y < MAZE_HEIGHT; y++) {
+ for (var x = 0; x < MAZE_WIDTH; x++) {
+ var assetName = mazeData[y][x] === 1 ? 'wall' : 'path';
+ var cell = LK.getAsset(assetName, {
+ x: MAZE_OFFSET_X + x * CELL_SIZE,
+ y: MAZE_OFFSET_Y + y * CELL_SIZE
+ });
+ mazeContainer.addChild(cell);
+ }
+}
+// Create Gül
+var gul = new Gul();
+game.addChild(gul);
+gul.moveToGrid(1, 1);
+// Create hamburger at exit
+var hamburger = new Hamburger();
+game.addChild(hamburger);
+hamburger.setPosition(13, 18);
+var isMoving = false;
+var gameWon = false;
+function canMoveTo(gridX, gridY) {
+ if (gridX < 0 || gridX >= MAZE_WIDTH || gridY < 0 || gridY >= MAZE_HEIGHT) {
+ return false;
+ }
+ return mazeData[gridY][gridX] === 0;
+}
+function moveGul(deltaX, deltaY) {
+ if (isMoving || gameWon) return;
+ var newX = gul.gridX + deltaX;
+ var newY = gul.gridY + deltaY;
+ if (canMoveTo(newX, newY)) {
+ isMoving = true;
+ gul.moveToGrid(newX, newY);
+ LK.getSound('move').play();
+ LK.setTimeout(function () {
+ isMoving = false;
+ // Check if reached hamburger
+ if (gul.gridX === hamburger.gridX && gul.gridY === hamburger.gridY) {
+ gameWon = true;
+ LK.getSound('win').play();
+ LK.effects.flashScreen(0xFFD700, 1000);
+ LK.setTimeout(function () {
+ LK.showYouWin();
+ }, 1000);
+ }
+ }, 200);
+ }
+}
+// Touch controls
+var touchStartX = 0;
+var touchStartY = 0;
+var minSwipeDistance = 50;
+game.down = function (x, y, obj) {
+ touchStartX = x;
+ touchStartY = y;
+};
+game.up = function (x, y, obj) {
+ var deltaX = x - touchStartX;
+ var deltaY = y - touchStartY;
+ var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
+ if (distance < minSwipeDistance) return;
+ if (Math.abs(deltaX) > Math.abs(deltaY)) {
+ // Horizontal movement
+ if (deltaX > 0) {
+ moveGul(1, 0); // Right
+ } else {
+ moveGul(-1, 0); // Left
+ }
+ } else {
+ // Vertical movement
+ if (deltaY > 0) {
+ moveGul(0, 1); // Down
+ } else {
+ moveGul(0, -1); // Up
+ }
+ }
+};
+// Add title
+var titleText = new Text2("Gül's Hungry Maze", {
+ size: 80,
+ fill: 0xFFFFFF
+});
+titleText.anchor.set(0.5, 0);
+titleText.x = 2048 / 2;
+titleText.y = 50;
+game.addChild(titleText);
+// Add instructions
+var instructionsText = new Text2('Swipe to move Gül to the hamburger!', {
+ size: 40,
+ fill: 0xFFFF99
+});
+instructionsText.anchor.set(0.5, 0);
+instructionsText.x = 2048 / 2;
+instructionsText.y = 130;
+game.addChild(instructionsText);
+game.update = function () {
+ // Game logic is handled in event handlers
+};
\ No newline at end of file