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 () {}; }); // 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 () {}; }); /**** * 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 right click to create building blocks game.on('rightdown', function (obj) { var pos = obj.event.getLocalPosition(game); createBlock(pos.x, pos.y); }); // Event listener for right up to create black blocks game.on('rightup', 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); }); } } // Call load game state when game starts loadGameState();
===================================================================
--- original.js
+++ change.js
@@ -91,9 +91,9 @@
}
// Load game state
function loadGameState() {
- var savedState = localStorage.getItem('gameState');
+ 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);