Code edit (1 edits merged)
Please save this source code
User prompt
make sure the character only moves with it each floor tile
User prompt
Please fix the bug: 'ReferenceError: isGameStarted is not defined' in or related to this line: 'if (fadeEffect.alpha < 1) {' Line Number: 271
User prompt
Please fix the bug: 'ReferenceError: fadeEffect is not defined' in or related to this line: 'if (fadeEffect.alpha < 1) {' Line Number: 267
User prompt
Please fix the bug: 'ReferenceError: characterShadow is not defined' in or related to this line: 'characterShadow.x = character.x;' Line Number: 281
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot set properties of undefined (setting '13.66')' in or related to this line: 'self.grid[x][y] = obj;' Line Number: 43
User prompt
Please fix the bug: 'Uncaught ReferenceError: tileHeight is not defined' in or related to this line: 'var corners = [{' Line Number: 232
User prompt
Please fix the bug: 'Uncaught ReferenceError: gridOffsetX is not defined' in or related to this line: 'var corners = [{' Line Number: 230
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = LK.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 133
User prompt
fix the code
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = game.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 138
User prompt
remove character movement
Code edit (1 edits merged)
Please save this source code
User prompt
rearrange classes on the code structure, group variables on the top of the document
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = LK.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = game.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = LK.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = game.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = LK.screen.width * .6 / gridSize; // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var tileWidth = LK.screen.width * .6 / (gridSize - 1); // Adjust tile width to ensure tiles are touching' Line Number: 166
User prompt
Please fix the bug: 'ReferenceError: fadeEffect is not defined' in or related to this line: 'if (fadeEffect.alpha < 1) {' Line Number: 248
User prompt
remove unused code variables and methods, refactor for optimization and reusability
User prompt
remove all character movement
User prompt
fix character movement
/**** * Classes ****/ // OnScreenController class encapsulating A, B buttons and D-pad var OnScreenController = Container.expand(function () { var self = Container.call(this); // Add a background for the on screen controllers var yPosAdjustment = -180; var buttonYPosAdjustment = -273.2; // Removed redundant tint application on A and B buttons LK.screen = { width: 2048, height: 2732 }; // Initialize screen dimensions var aButtonPosition = { x: LK.screen.width * 0.68, y: LK.screen.height * 0.89 + buttonYPosAdjustment + LK.screen.height * 0.055 }; var bButtonPosition = { x: LK.screen.width * 0.88, y: LK.screen.height * 0.89 + buttonYPosAdjustment - LK.screen.height * 0.018 }; var buttonSize = { width: LK.screen.width * 0.2, height: LK.screen.width * 0.2 }; var aButton = self.attachAsset('aButton', { anchorX: 0.5, anchorY: 0.5, x: aButtonPosition.x, y: aButtonPosition.y, width: buttonSize.width, height: buttonSize.height, tint: 0x00FF00 // Green tint }); var bButton = self.attachAsset('bButton', { anchorX: 0.5, anchorY: 0.5, x: bButtonPosition.x, y: bButtonPosition.y, width: buttonSize.width, height: buttonSize.height, tint: 0xFF0000 // Red tint }); // D-pad var dpadBase = self.attachAsset('dpadBase', { anchorX: 0.5, anchorY: 0.5, x: LK.screen.width * 0.24, y: LK.screen.height * 0.89 + yPosAdjustment - 10, scaleX: LK.screen.width * 0.001 * 0.95, scaleY: LK.screen.width * 0.001 * 0.95 }); // Move dpad base to the top of the display list so it appears on top of the arrows self.setChildIndex(dpadBase, self.children.length - 1); var dpadLeft = self.attachAsset('dpadButton', { anchorX: 0.5, anchorY: 0.5, x: dpadBase.x - 250, y: dpadBase.y, width: 450, height: 450, tint: 0xFFFF00, orientation: 3 }); dpadLeft.on('down', function () { if (character) { character.x -= 145.2; // Move character left by 145.2 pixels to match grid size } // Removed tint change on press }); dpadLeft.on('up', function () { // Removed tint reset on release }); // A and B button event listeners var dpadUp = self.attachAsset('dpadButton', { anchorX: 0.5, anchorY: 0.5, x: dpadBase.x, y: dpadBase.y - 250, width: 450, height: 450, tint: 0xFFFF00, orientation: 0 }); dpadUp.on('down', function () { if (character) { character.y -= 145.2; // Move character up by 145.2 pixels to match grid size } // Removed tint change on press }); var dpadRight = self.attachAsset('dpadButton', { anchorX: 0.5, anchorY: 0.5, x: dpadBase.x + 250, y: dpadBase.y, width: 450, height: 450, tint: 0xFFFF00, orientation: 1 }); dpadRight.on('down', function () { if (character) { character.x += 145.2; // Move character right by 145.2 pixels to match grid size } // Removed tint change on press }); dpadRight.on('up', function () { // Removed tint reset on release }); bButton.on('down', function () { console.log('B button pressed'); // Removed tint change on press }); bButton.on('up', function () { // Removed tint reset on release }); var dpadDown = self.attachAsset('dpadButton', { anchorX: 0.5, anchorY: 0.5, x: dpadBase.x, y: dpadBase.y + 250, width: 450, height: 450, tint: 0xFFFF00, orientation: 2 }); dpadDown.on('down', function () { if (character) { character.y += 145.2; // Move character down by 145.2 pixels to match grid size } }); }); /**** * Initialize Game ****/ // Instantiate and add OnScreenController to the game var game = new LK.Game({ backgroundColor: 0xb2beb5 // Light teal gray background }); /**** * Game Code ****/ function moveCharacter(dx, dy) { var newX = character.x + dx * movementDistance; var newY = character.y + dy * movementDistance; // Check if new position is within bounds and if it's a floor tile var newTile = getTileAtPosition(newX, newY); if (newTile && floorTiles.indexOf(newTile) !== -1 && wallTiles.indexOf(newTile) === -1) { // Move character to new position character.x = newX; character.y = newY; character.currentTile = newTile; } } LK.screen = { width: 2048, height: 2732 }; // Initialize screen dimensions var gridSize = 10; var character; var wallTiles = []; var floorTiles = []; var grid = new Array(gridSize * gridSize); var tileWidth = LK.screen.width * .6 / (gridSize - 1); // Adjust tile width to ensure tiles are touching var tileHeight = tileWidth; // Ensure square tiles for a uniform grid var gridOffsetX = (LK.screen.width - tileWidth * (gridSize - 1)) / 2; // Adjust grid offset to account for new tile width var gridOffsetY = (LK.screen.height - tileHeight * (gridSize - 1)) / 2 - LK.screen.height * 0.15; // Adjust grid offset to account for new tile height var onScreenController = game.addChild(new OnScreenController()); // Character movement function removed function createTiles() { // Create a black square background for the grid var gridBackground = LK.getAsset('gridBackground', { anchorX: 0.5, anchorY: 0.79, x: LK.screen.width / 2, y: LK.screen.height / 2, width: LK.screen.width * .7, height: LK.screen.height * .525, color: 0x000000 }); game.addChild(gridBackground); for (var i = 0; i < gridSize * gridSize; i++) { var x = i % gridSize; var y = Math.floor(i / gridSize); var tile; var tileWidth = LK.screen.width * .6 / (gridSize - 1); // Adjust tile width to ensure tiles are touching var tileHeight = tileWidth; // Ensure square tiles for a uniform grid var gridOffsetX = (LK.screen.width - tileWidth * (gridSize - 1)) / 2; // Adjust grid offset to account for new tile width var gridOffsetY = (LK.screen.height - tileHeight * (gridSize - 1)) / 2 - LK.screen.height * 0.15; // Adjust grid offset to account for new tile height if (x === 0 || y === 0 || x === gridSize - 1 || y === gridSize - 1) { tile = LK.getAsset('wallTile', { anchorX: 0.5, anchorY: 0.5, x: x * tileWidth + gridOffsetX, y: y * tileHeight + gridOffsetY }); wallTiles.push(tile); } else { tile = LK.getAsset('floorTile', { anchorX: 0.5, anchorY: 0.5, x: x * tileWidth + gridOffsetX, y: y * tileHeight + gridOffsetY }); floorTiles.push(tile); } game.addChild(tile); grid[i] = tile; } } createTiles(); // Function to check if a tile is in a corner function isTileInCorner(tile) { var corners = [{ x: gridOffsetX, y: gridOffsetY }, { x: gridOffsetX, y: (gridSize - 1) * tileHeight + gridOffsetY }, { x: (gridSize - 1) * tileWidth + gridOffsetX, y: gridOffsetY }, { x: (gridSize - 1) * tileWidth + gridOffsetX, y: (gridSize - 1) * tileHeight + gridOffsetY }]; return corners.some(function (corner) { return Math.abs(tile.x - corner.x) < 1 && Math.abs(tile.y - corner.y) < 1; }); } // Select a random wall tile and replace it with a hole tile, ensuring it's not in a corner do { randomWallTileIndex = Math.floor(Math.random() * wallTiles.length); randomWallTile = wallTiles[randomWallTileIndex]; } while (isTileInCorner(randomWallTile) || randomWallTileIndex % gridSize == 0 || randomWallTileIndex % gridSize == gridSize - 1 || randomWallTileIndex < gridSize || randomWallTileIndex >= gridSize * (gridSize - 1)); var holeTile = LK.getAsset('holeTile', { anchorX: 0.5, anchorY: 0.5, x: randomWallTile.x, y: randomWallTile.y }); game.addChild(holeTile); game.removeChild(randomWallTile); wallTiles[randomWallTileIndex] = holeTile; var fadeEffect = { alpha: 0, speed: 0.01 }; LK.on('tick', function () { if (fadeEffect.alpha < 1) { fadeEffect.alpha += fadeEffect.speed; game.alpha = fadeEffect.alpha; } else if (!isGameStarted) { isGameStarted = true; // Ensure game start logic is only triggered once character = LK.getAsset('character', { anchorX: 0.5, anchorY: 0.5, x: holeTile.x, y: holeTile.y - 50, scaleX: 1.25, scaleY: 1.25 }); var characterShadow = LK.getAsset('characterShadow', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 72.6, scaleX: 0.6, // Shrink the shadow a couple pixels scaleY: 0.6, // Shrink the shadow a couple pixels alpha: 0.5 }); character.addChild(characterShadow); character.currentTile = getTileAtPosition(holeTile.x, holeTile.y); // Correctly initialize character's current tile game.addChild(character); } }); // Define a function to get the tile at a given position function getTileAtPosition(x, y) { var index = Math.floor(y / 100) * gridSize + Math.floor(x / 100); return grid[index]; }
===================================================================
--- original.js
+++ change.js
@@ -3,53 +3,54 @@
****/
// OnScreenController class encapsulating A, B buttons and D-pad
var OnScreenController = Container.expand(function () {
var self = Container.call(this);
- // Customizable controller button positions and colors
- var yPosAdjustment = -100; // Customizable Y position adjustment for D-pad
- var buttonYPosAdjustment = -273.2; // Customizable Y position adjustment for buttons
- var aButtonColor = 0x00FF00; // Customizable A button color
- var bButtonColor = 0xFF0000; // Customizable B button color
+ // Add a background for the on screen controllers
+ var yPosAdjustment = -180;
+ var buttonYPosAdjustment = -273.2;
+ // Removed redundant tint application on A and B buttons
+ LK.screen = {
+ width: 2048,
+ height: 2732
+ }; // Initialize screen dimensions
var aButtonPosition = {
- x: 1400,
- // Moved 100 pixels closer to the center
- y: 2432 + buttonYPosAdjustment + 150
- }; // Customizable A button position
+ x: LK.screen.width * 0.68,
+ y: LK.screen.height * 0.89 + buttonYPosAdjustment + LK.screen.height * 0.055
+ };
var bButtonPosition = {
- x: 1800,
- // Adjusted X position to bring B button closer to A button
- y: 2432 + buttonYPosAdjustment - 50
- }; // Customizable B button position
+ x: LK.screen.width * 0.88,
+ y: LK.screen.height * 0.89 + buttonYPosAdjustment - LK.screen.height * 0.018
+ };
var buttonSize = {
- width: 400,
- height: 400
- }; // Shared variable for dpad buttons size
+ width: LK.screen.width * 0.2,
+ height: LK.screen.width * 0.2
+ };
var aButton = self.attachAsset('aButton', {
anchorX: 0.5,
anchorY: 0.5,
x: aButtonPosition.x,
y: aButtonPosition.y,
width: buttonSize.width,
height: buttonSize.height,
- tint: aButtonColor // Use customizable A button color
+ tint: 0x00FF00 // Green tint
});
var bButton = self.attachAsset('bButton', {
anchorX: 0.5,
anchorY: 0.5,
x: bButtonPosition.x,
y: bButtonPosition.y,
width: buttonSize.width,
height: buttonSize.height,
- tint: bButtonColor // Use customizable B button color
+ tint: 0xFF0000 // Red tint
});
// D-pad
var dpadBase = self.attachAsset('dpadBase', {
anchorX: 0.5,
anchorY: 0.5,
- x: 500,
- y: 2432 + yPosAdjustment,
- scaleX: 3.0,
- scaleY: 3.0
+ x: LK.screen.width * 0.24,
+ y: LK.screen.height * 0.89 + yPosAdjustment - 10,
+ scaleX: LK.screen.width * 0.001 * 0.95,
+ scaleY: LK.screen.width * 0.001 * 0.95
});
// Move dpad base to the top of the display list so it appears on top of the arrows
self.setChildIndex(dpadBase, self.children.length - 1);
var dpadLeft = self.attachAsset('dpadButton', {
@@ -59,16 +60,19 @@
y: dpadBase.y,
width: 450,
height: 450,
tint: 0xFFFF00,
- // Change color to yellow
- orientation: 3 // Correct orientation for left direction
+ orientation: 3
});
dpadLeft.on('down', function () {
if (character) {
character.x -= 145.2; // Move character left by 145.2 pixels to match grid size
}
+ // Removed tint change on press
});
+ dpadLeft.on('up', function () {
+ // Removed tint reset on release
+ });
// A and B button event listeners
var dpadUp = self.attachAsset('dpadButton', {
anchorX: 0.5,
anchorY: 0.5,
@@ -76,45 +80,41 @@
y: dpadBase.y - 250,
width: 450,
height: 450,
tint: 0xFFFF00,
- // Change color to yellow
- orientation: 0 // Correct orientation for up direction
+ orientation: 0
});
dpadUp.on('down', function () {
if (character) {
character.y -= 145.2; // Move character up by 145.2 pixels to match grid size
}
+ // Removed tint change on press
});
- aButton.on('down', function () {
- console.log('A button pressed');
- aButton.tint = 0xAAAAAA; // Tint A button to a darker color when pressed
- });
- aButton.on('up', function () {
- aButton.tint = 0x00FF00; // Return A button to original green color when released
- });
var dpadRight = self.attachAsset('dpadButton', {
anchorX: 0.5,
anchorY: 0.5,
x: dpadBase.x + 250,
y: dpadBase.y,
width: 450,
height: 450,
tint: 0xFFFF00,
- // Change color to yellow
- orientation: 1 // Correct orientation for right direction
+ orientation: 1
});
dpadRight.on('down', function () {
if (character) {
character.x += 145.2; // Move character right by 145.2 pixels to match grid size
}
+ // Removed tint change on press
});
+ dpadRight.on('up', function () {
+ // Removed tint reset on release
+ });
bButton.on('down', function () {
console.log('B button pressed');
- bButton.tint = 0xAAAAAA; // Tint B button to a darker color when pressed
+ // Removed tint change on press
});
bButton.on('up', function () {
- bButton.tint = 0xFF0000; // Return B button to original red color when released
+ // Removed tint reset on release
});
var dpadDown = self.attachAsset('dpadButton', {
anchorX: 0.5,
anchorY: 0.5,
@@ -122,10 +122,9 @@
y: dpadBase.y + 250,
width: 450,
height: 450,
tint: 0xFFFF00,
- // Change color to yellow
- orientation: 2 // Correct orientation for down direction
+ orientation: 2
});
dpadDown.on('down', function () {
if (character) {
character.y += 145.2; // Move character down by 145.2 pixels to match grid size
@@ -137,68 +136,75 @@
* Initialize Game
****/
// Instantiate and add OnScreenController to the game
var game = new LK.Game({
- backgroundColor: 0x000000
+ backgroundColor: 0xb2beb5 // Light teal gray background
});
/****
* Game Code
****/
function moveCharacter(dx, dy) {
var newX = character.x + dx * movementDistance;
var newY = character.y + dy * movementDistance;
- // Check if new position is within bounds and if it's a wall tile
+ // Check if new position is within bounds and if it's a floor tile
var newTile = getTileAtPosition(newX, newY);
- if (newTile && wallTiles.indexOf(newTile) === -1) {
+ if (newTile && floorTiles.indexOf(newTile) !== -1 && wallTiles.indexOf(newTile) === -1) {
// Move character to new position
character.x = newX;
character.y = newY;
character.currentTile = newTile;
}
}
-var onScreenController = game.addChild(new OnScreenController());
-// D-pad button event listeners moved inside OnScreenController class
-// Character movement function removed
-var touchStartPos = null;
-var touchEndPos = null;
-// Swipe movement 'down' event listener removed
-// Swipe movement 'up' event listener removed
-function initializeGame() {
- return game;
-}
-var game = initializeGame();
+LK.screen = {
+ width: 2048,
+ height: 2732
+}; // Initialize screen dimensions
var gridSize = 10;
var character;
var wallTiles = [];
var floorTiles = [];
-var selectedTile;
-var tileOriginalColor;
-var isGameStarted = false;
var grid = new Array(gridSize * gridSize);
-var fadeEffect = {
- alpha: 0,
- speed: 0.01
-};
+var tileWidth = LK.screen.width * .6 / (gridSize - 1); // Adjust tile width to ensure tiles are touching
+var tileHeight = tileWidth; // Ensure square tiles for a uniform grid
+var gridOffsetX = (LK.screen.width - tileWidth * (gridSize - 1)) / 2; // Adjust grid offset to account for new tile width
+var gridOffsetY = (LK.screen.height - tileHeight * (gridSize - 1)) / 2 - LK.screen.height * 0.15; // Adjust grid offset to account for new tile height
+var onScreenController = game.addChild(new OnScreenController());
+// Character movement function removed
function createTiles() {
+ // Create a black square background for the grid
+ var gridBackground = LK.getAsset('gridBackground', {
+ anchorX: 0.5,
+ anchorY: 0.79,
+ x: LK.screen.width / 2,
+ y: LK.screen.height / 2,
+ width: LK.screen.width * .7,
+ height: LK.screen.height * .525,
+ color: 0x000000
+ });
+ game.addChild(gridBackground);
for (var i = 0; i < gridSize * gridSize; i++) {
var x = i % gridSize;
var y = Math.floor(i / gridSize);
var tile;
+ var tileWidth = LK.screen.width * .6 / (gridSize - 1); // Adjust tile width to ensure tiles are touching
+ var tileHeight = tileWidth; // Ensure square tiles for a uniform grid
+ var gridOffsetX = (LK.screen.width - tileWidth * (gridSize - 1)) / 2; // Adjust grid offset to account for new tile width
+ var gridOffsetY = (LK.screen.height - tileHeight * (gridSize - 1)) / 2 - LK.screen.height * 0.15; // Adjust grid offset to account for new tile height
if (x === 0 || y === 0 || x === gridSize - 1 || y === gridSize - 1) {
tile = LK.getAsset('wallTile', {
anchorX: 0.5,
anchorY: 0.5,
- x: x * 145.2 + (2048 - gridSize * 145.2) / 2,
- y: y * 145.2 + (2732 - gridSize * 145.2) / 2 - 300
+ x: x * tileWidth + gridOffsetX,
+ y: y * tileHeight + gridOffsetY
});
wallTiles.push(tile);
} else {
tile = LK.getAsset('floorTile', {
anchorX: 0.5,
anchorY: 0.5,
- x: x * 145.2 + (2048 - gridSize * 145.2) / 2,
- y: y * 145.2 + (2732 - gridSize * 145.2) / 2 - 300
+ x: x * tileWidth + gridOffsetX,
+ y: y * tileHeight + gridOffsetY
});
floorTiles.push(tile);
}
game.addChild(tile);
@@ -208,31 +214,29 @@
createTiles();
// Function to check if a tile is in a corner
function isTileInCorner(tile) {
var corners = [{
- x: 0,
- y: 0
+ x: gridOffsetX,
+ y: gridOffsetY
}, {
- x: 0,
- y: (gridSize - 1) * 100
+ x: gridOffsetX,
+ y: (gridSize - 1) * tileHeight + gridOffsetY
}, {
- x: (gridSize - 1) * 100,
- y: 0
+ x: (gridSize - 1) * tileWidth + gridOffsetX,
+ y: gridOffsetY
}, {
- x: (gridSize - 1) * 100,
- y: (gridSize - 1) * 100
+ x: (gridSize - 1) * tileWidth + gridOffsetX,
+ y: (gridSize - 1) * tileHeight + gridOffsetY
}];
return corners.some(function (corner) {
- return tile.x === corner.x && tile.y === corner.y;
+ return Math.abs(tile.x - corner.x) < 1 && Math.abs(tile.y - corner.y) < 1;
});
}
// Select a random wall tile and replace it with a hole tile, ensuring it's not in a corner
-var randomWallTileIndex;
-var randomWallTile;
do {
randomWallTileIndex = Math.floor(Math.random() * wallTiles.length);
randomWallTile = wallTiles[randomWallTileIndex];
-} while (isTileInCorner(randomWallTile));
+} while (isTileInCorner(randomWallTile) || randomWallTileIndex % gridSize == 0 || randomWallTileIndex % gridSize == gridSize - 1 || randomWallTileIndex < gridSize || randomWallTileIndex >= gridSize * (gridSize - 1));
var holeTile = LK.getAsset('holeTile', {
anchorX: 0.5,
anchorY: 0.5,
x: randomWallTile.x,
@@ -240,45 +244,43 @@
});
game.addChild(holeTile);
game.removeChild(randomWallTile);
wallTiles[randomWallTileIndex] = holeTile;
+var fadeEffect = {
+ alpha: 0,
+ speed: 0.01
+};
LK.on('tick', function () {
if (fadeEffect.alpha < 1) {
fadeEffect.alpha += fadeEffect.speed;
game.alpha = fadeEffect.alpha;
} else if (!isGameStarted) {
- // Patrol points setup logic removed
isGameStarted = true; // Ensure game start logic is only triggered once
- // Initialize game elements here after fade-in completes
- // Spawn an instance of the character on the hole tile
character = LK.getAsset('character', {
anchorX: 0.5,
anchorY: 0.5,
x: holeTile.x,
y: holeTile.y - 50,
scaleX: 1.25,
scaleY: 1.25
});
- var shadowOffsetY = 50; // Customizable shadow Y offset multiplier
- // Optimized shadow ofset calculation
- characterShadow.x = character.x;
- characterShadow.y = character.y - shadowOffsetY; // Use customizable shadow Y offset multiplier
- character.currentTile = getTileAtPosition(holeTile.x, holeTile.y); // Correctly initialize character's current tile
- game.addChild(characterShadow);
- game.addChild(character);
- }
- // Make the character's shadow follow the character on both x and y axis
- if (character) {
var characterShadow = LK.getAsset('characterShadow', {
anchorX: 0.5,
anchorY: 0.5,
- x: character.x,
- y: character.y + character.height / 2
+ x: 0,
+ y: 72.6,
+ scaleX: 0.6,
+ // Shrink the shadow a couple pixels
+ scaleY: 0.6,
+ // Shrink the shadow a couple pixels
+ alpha: 0.5
});
+ character.addChild(characterShadow);
+ character.currentTile = getTileAtPosition(holeTile.x, holeTile.y); // Correctly initialize character's current tile
+ game.addChild(character);
}
});
// Define a function to get the tile at a given position
function getTileAtPosition(x, y) {
var index = Math.floor(y / 100) * gridSize + Math.floor(x / 100);
return grid[index];
-}
-// Character movement logic removed
\ No newline at end of file
+}
\ No newline at end of file
grey square, black border. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
simple light yellow button front view game console, clean, rounded edges, high resolution, graphic. Single Game Texture. In-Game asset. 2d. Blank background. High contrast.
Worn out sticker for a video game, 90s style, cheese, simple, vintage. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
wall view from top-down, game asset videogame, black color, simple. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. worn out sticker. 90's style. vintage. simple. top-down view. poster. sticker
top-down view, videogame character enemy, roomba, 90s style sticker, flat, no perspective, silhouette, black and white, cartoon, fun, simple, from above. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
top-down view, videogame heart, 90s style sticker, flat, no perspective, silhouette, white, cartoon, fun, simple, from above. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Black square with white outline. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.