User prompt
load on x button used
User prompt
save and load button
User prompt
create block using left click
User prompt
create black block using right click
User prompt
create building block on use left button
User prompt
create black blocks on left click
User prompt
create building block on left click
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'getItem')' in this line: 'var savedState = localStorage.getItem('gameState');' Line Number: 97
User prompt
save and load
User prompt
add asset
Initial prompt
MSandbox
/****
* Classes
****/
// Block class for creating building blocks
var Block = Container.expand(function () {
var self = Container.call(this);
var blockGraphics = self.createAsset('block', 'Building block', 0.5, 0.5);
self.move = function () {};
self.update = function () {};
});
// SaveButton class for creating a save button
var SaveButton = Container.expand(function () {
var self = Container.call(this);
var saveButtonGraphics = self.createAsset('saveButton', 'Save game button', 0.5, 0.5);
self.on('down', function () {
saveGameState();
console.log('Game state saved');
});
});
// BlackBlock class for creating black blocks
var BlackBlock = Container.expand(function () {
var self = Container.call(this);
var blackBlockGraphics = self.createAsset('blackBlock', 'Black block', 0.5, 0.5);
self.move = function () {};
self.update = function () {};
});
// LoadButton class for creating a load button
var LoadButton = Container.expand(function () {
var self = Container.call(this);
var loadButtonGraphics = self.createAsset('loadButton', 'Load game button', 0.5, 0.5);
self.on('x', function () {
loadGameState();
console.log('Game state loaded');
});
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize important asset arrays
var blocks = [];
var blackBlocks = [];
// Function to handle the creation of blocks
function createBlock(x, y) {
var block = new Block();
block.x = x;
block.y = y;
blocks.push(block);
game.addChild(block);
}
// Function to handle the creation of black blocks
function createBlackBlock(x, y) {
var blackBlock = new BlackBlock();
blackBlock.x = x;
blackBlock.y = y;
blackBlocks.push(blackBlock);
game.addChild(blackBlock);
}
// Event listener for left click to create building blocks
game.on('leftdown', function (obj) {
var pos = obj.event.getLocalPosition(game);
createBlock(pos.x, pos.y);
});
// Event listener for right click to create black blocks
game.on('rightdown', function (obj) {
var pos = obj.event.getLocalPosition(game);
createBlackBlock(pos.x, pos.y);
});
// Main game update loop
LK.on('tick', function () {
// Update all blocks
for (var i = 0; i < blocks.length; i++) {
blocks[i].update();
}
// Update all black blocks
for (var j = 0; j < blackBlocks.length; j++) {
blackBlocks[j].update();
}
}); // Save game state
function saveGameState() {
var gameState = {
blocks: blocks.map(function (block) {
return {
x: block.x,
y: block.y
};
}),
blackBlocks: blackBlocks.map(function (blackBlock) {
return {
x: blackBlock.x,
y: blackBlock.y
};
})
};
localStorage.setItem('gameState', JSON.stringify(gameState));
}
// Load game state
function loadGameState() {
var savedState = typeof localStorage !== 'undefined' ? localStorage.getItem('gameState') : null;
if (savedState) {
var gameState = JSON.parse(savedState);
gameState.blocks.forEach(function (blockData) {
createBlock(blockData.x, blockData.y);
});
gameState.blackBlocks.forEach(function (blackBlockData) {
createBlackBlock(blackBlockData.x, blackBlockData.y);
});
}
}
// Create save and load buttons and add them to the game
var saveButton = new SaveButton();
saveButton.x = LK.gui.topRight.x - 100; // Position save button near top-right
saveButton.y = 50;
LK.gui.topRight.addChild(saveButton);
var loadButton = new LoadButton();
loadButton.x = LK.gui.topRight.x - 250; // Position load button near top-right, next to save button
loadButton.y = 50;
LK.gui.topRight.addChild(loadButton);
// Call load game state when game starts
loadGameState(); ===================================================================
--- original.js
+++ change.js
@@ -27,9 +27,9 @@
// LoadButton class for creating a load button
var LoadButton = Container.expand(function () {
var self = Container.call(this);
var loadButtonGraphics = self.createAsset('loadButton', 'Load game button', 0.5, 0.5);
- self.on('down', function () {
+ self.on('x', function () {
loadGameState();
console.log('Game state loaded');
});
});