User prompt
set save button pos to left angle
User prompt
set reste button pos to 50 50
User prompt
move reset button to /8 /8
User prompt
move reset button to /4 /4
User prompt
create reset button on 100 100
User prompt
console
User prompt
set pos of load button to 20 20
User prompt
set pos for load button to 50 50
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'getLocalPosition')' in this line: 'var pos = obj.event.data.getLocalPosition(game);' Line Number: 155
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'global')' in this line: 'var pos = obj.event.data.global;' Line Number: 163
User prompt
where click pos
User prompt
set load button pos to 90 40
User prompt
set load button pos to 10 1
User prompt
auto load after game start
User prompt
auto save after 120 seconds
User prompt
auto save and load
User prompt
del s for save
User prompt
blue blocks created using left click
User prompt
fix blue block
User prompt
cords
User prompt
save button pos 50 90
User prompt
save button pos 50 50
User prompt
fix load
User prompt
fix blue blocks
User prompt
save game using save button
/****
* Classes
****/
// BlueBlock class for creating blue blocks
var BlueBlock = Container.expand(function () {
var self = Container.call(this);
var blueBlockGraphics = self.createAsset('blueBlock', 'Blue block', 0.5, 0.5);
self.layer = 1;
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 () {};
});
// SaveButton class for creating save button
var SaveButton = Container.expand(function () {
var self = Container.call(this);
var saveButtonGraphics = self.createAsset('saveButton', 'Save button', 0.5, 0.5);
saveButtonGraphics.rotation = Math.PI / 4; // Set button at 45 degrees angle
self.layer = 2;
self.on('rightdown', function () {
self.saveGame();
});
self.saveGame = function () {
if (typeof LK.localStorage !== 'undefined') {
LK.localStorage.setItem('blueBlocks', JSON.stringify(blueBlocks.map(function (block) {
return {
x: block.x,
y: block.y
};
})));
LK.localStorage.setItem('blackBlocks', JSON.stringify(blackBlocks.map(function (block) {
return {
x: block.x,
y: block.y
};
})));
}
};
});
// Function to save the current state of blueBlocks and blackBlocks
// LoadButton class for creating load button
var LoadButton = Container.expand(function () {
var self = Container.call(this);
var loadButtonGraphics = self.createAsset('loadButton', 'Load button', 0.5, 0.5);
loadButtonGraphics.rotation = Math.PI / 4; // Set button at 45 degrees angle
self.layer = 2;
self.on('down', function () {
// Load the saved state of blueBlocks and blackBlocks
var savedBlueBlocks = typeof LK.localStorage !== 'undefined' && LK.localStorage.getItem('blueBlocks') ? JSON.parse(LK.localStorage.getItem('blueBlocks')) : [];
var savedBlackBlocks = typeof LK.localStorage !== 'undefined' && LK.localStorage.getItem('blackBlocks') ? JSON.parse(LK.localStorage.getItem('blackBlocks')) : [];
// Clear the current blocks from the game
blueBlocks.forEach(function (block) {
block.destroy();
});
blackBlocks.forEach(function (block) {
block.destroy();
});
blueBlocks = [];
blackBlocks = [];
// Create new blocks from the saved state
savedBlueBlocks.forEach(function (data) {
createBlueBlock(data.x, data.y);
});
savedBlackBlocks.forEach(function (data) {
createBlackBlock(data.x, data.y);
});
});
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize important asset arrays
// Function to save the current state of blueBlocks and blackBlocks
game.saveGameState = function () {
if (typeof LK.localStorage !== 'undefined') {
LK.localStorage.setItem('blueBlocks', JSON.stringify(blueBlocks.map(function (block) {
return {
x: block.x,
y: block.y
};
})));
}
if (typeof LK.localStorage !== 'undefined') {
LK.localStorage.setItem('blackBlocks', JSON.stringify(blackBlocks.map(function (block) {
return {
x: block.x,
y: block.y
};
})));
}
};
var blueBlocks = [];
var blackBlocks = [];
// Function to handle the creation of blue blocks
function createBlueBlock(x, y) {
var blueBlock = new BlueBlock();
blueBlock.x = x;
blueBlock.y = y;
blueBlock.layer = 1;
blueBlocks.push(blueBlock);
game.addChild(blueBlock);
}
// Function to handle the creation of black blocks
function createBlackBlock(x, y) {
var blackBlock = new BlackBlock();
blackBlock.x = x;
blackBlock.y = y;
blackBlock.layer = 1;
blackBlocks.push(blackBlock);
game.addChild(blackBlock);
}
// Event listener for left click to create blue blocks
game.on('down', function (obj) {
var pos = obj.event.getLocalPosition(game);
// Check if the position is not on the save button before creating a block
if (!saveButton.getBounds().contains(pos.x, pos.y) && !loadButton.getBounds().contains(pos.x, pos.y)) {
createBlueBlock(pos.x, pos.y);
}
});
// Event listener for 's' key to save the game state
game.on('keydown', function (obj) {
if (obj.event.key === 's') {
game.saveGameState();
}
});
// Event listener for right up to create black blocks
game.on('rightup', function (obj) {
var pos = obj.event.getLocalPosition(game);
// Check if the position is not on the save button before creating a block
if (!saveButton.intersects(pos)) {
createBlackBlock(pos.x, pos.y);
}
});
// Main game update loop
LK.on('tick', function () {
// Update all blue blocks
for (var i = 0; i < blueBlocks.length; i++) {
blueBlocks[i].update();
}
// Update all black blocks
for (var j = 0; j < blackBlocks.length; j++) {
blackBlocks[j].update();
}
}); // Instantiate save and load buttons
var saveButton = new SaveButton();
saveButton.x = 90;
saveButton.y = 90;
game.addChild(saveButton);
var loadButton = new LoadButton();
loadButton.x = LK.gui.bottomRight.x - loadButton.width / 2;
loadButton.y = LK.gui.bottomRight.y - loadButton.height / 2;
loadButton.layer = 2;
game.addChild(loadButton);