Code edit (1 edits merged)
Please save this source code
User prompt
перемести ассет anvil в точку где на ассете gameScreenBackground находится наковальня
User prompt
перемести ассет anvil в центр gameScreenBackground
User prompt
перемести ассет anvil в центр экрана game
User prompt
перемести ассет anvil в центр экрана
User prompt
добавь новый ассет "инвентарь" в верхней части экрана, он должен показsваться на всех страницах кроме стартовой "newGame"
User prompt
redcristal накладывается на другие ассеты при клике на map исправь ошибки
User prompt
mineinsidebackground накладывается на другие ассеты при клике на map исправь ошибки
User prompt
теперь при переходе в anvilmap я вижу все ассыты из mine, исправь ошибки
User prompt
ассеты 'blueCristal', 'greenCristal','redCristal"видно на слое экрана anvil, скрывай их при переходе в anvilmap
User prompt
ассеты 'blueCristal', 'greenCristal','redCristal"видно на слое экрана anvil, скрывай их при переходе в anvilmap
User prompt
скрывай ассеты 'blueCristal', 'greenCristal', 'redCristal" при переходе на экран anvil
User prompt
скрой ассеты 'blueCristal', 'greenCristal','redCristal" при переходе на экран anvil
User prompt
скрой ассеты 'blueCristal', 'greenCristal','redCristal" с экрана anvil
User prompt
при переходе c map в anvil не корректно отображаются ассеты, исправь ошибки
User prompt
Please fix the bug: 'Uncaught ReferenceError: redCristal is not defined' in or related to this line: 'if (redCristal) {' Line Number: 291
User prompt
Please fix the bug: 'Uncaught ReferenceError: greenCristal is not defined' in or related to this line: 'if (greenCristal) {' Line Number: 286
User prompt
Please fix the bug: 'Uncaught ReferenceError: blueCristal is not defined' in or related to this line: 'if (blueCristal) {' Line Number: 281
User prompt
при переходе с map в anvil отображается асссет blueCristal, greenCristal и redCristal , исправь ошибку
User prompt
при переходе с map в anvil отображается асссет mineinsidebackground, исправь ошибку
Code edit (2 edits merged)
Please save this source code
User prompt
добавь новый ассет "blueCristal" на страницу mine на верхний слой
Code edit (4 edits merged)
Please save this source code
User prompt
добавь новый ассет "greenCristal" на страницу mine на верхний слой
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { forgingSkill: 0, growthRate: 0 }); /**** * Classes ****/ // Create a new class for the anvil object var Anvil = Container.expand(function () { var self = Container.call(this); // Attach 'anvil' asset to the 'Anvil' object var anvilGraphics = self.attachAsset('anvil', { anchorX: 0.5, anchorY: 0.5 }); // Initialize the click counter self.clickCounter = 0; // Make the 'Anvil' object interactive self.interactive = true; // Define the 'down' event handler self.down = function (x, y, obj) { // Increment the click counter self.clickCounter++; // Update the text object with the click counter and label counterText.setText('Forging skill: ' + self.clickCounter); // Persist the click counter storage.forgingSkill = self.clickCounter; // Change the color of the counter text based on the click counter if (self.clickCounter >= 100 && self.clickCounter < 200) { counterText.tint = 0x00FF00; // Green } else if (self.clickCounter >= 200 && self.clickCounter < 300) { counterText.tint = 0x0000FF; // Blue } else if (self.clickCounter >= 300) { counterText.tint = 0x800080; // Purple } }; }); // Create a new class for the Door object var Door = Container.expand(function () { var self = Container.call(this); // Attach 'Door' asset to the 'Door' object var doorGraphics = self.attachAsset('Door', { anchorX: 0.5, anchorY: 0.5 }); // Make the 'Door' object interactive self.interactive = true; // Define the 'down' event handler self.down = function (x, y, obj) { // Remove the existing hammer hammer.destroy(); // Create a new screen game.magicNursery = game.addChild(new Container()); // Attach 'magicNurseryBackground' asset to the 'magicNursery' object var magicNurseryBackground = game.magicNursery.attachAsset('magicNurseryBackground', { anchorX: 0.5, anchorY: 0.5, interactive: false, // Disable interactivity to prevent blurring on click scaleX: 2, // Double the size horizontally scaleY: 2 // Double the size vertically }); // Recreate the hammer asset magicNurseryBackground.x = 2048 / 2; magicNurseryBackground.y = 2732 / 2; // Attach 'ForgeOfMatter' asset to the 'magicNursery' object var forgeOfMatter = game.magicNursery.attachAsset('ForgeOfMatter', { anchorX: 0.5, anchorY: 0.5, interactive: true, scaleX: 1, scaleY: 1 }); // Initialize the click counter for ForgeOfMatter forgeOfMatter.clickCounter = 0; // Initialize the growth rate click counter from the global growthRateCounter forgeOfMatter.clickCounter = growthRateCounter; growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter); // Define the 'down' event handler for ForgeOfMatter forgeOfMatter.down = function (x, y, obj) { // Increment the click counter forgeOfMatter.clickCounter++; // Update the text object with the click counter and label growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter); // Persist the click counter to the global growthRateCounter growthRateCounter = forgeOfMatter.clickCounter; storage.growthRate = growthRateCounter; }; forgeOfMatter.x = 2048 / 2; forgeOfMatter.y = 2732 / 1.35; // Add a new counter to the ForgeOfMatter object growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter); growthRateText.visible = true; // Hide the game screen gameScreen.visible = false; // Hide the counter display counterText.visible = false; // Hide the map when switching to the magic nursery screen map.visible = false; // Add a new object 'Door2' var door2 = game.magicNursery.addChild(new Door2()); // Position 'Door2' to the right, between the center and the edge of the screen door2.x = 2048 * 0.75; door2.y = 2732 * 0.9; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; }); // Create a new class for the Door2 object var Door2 = Container.expand(function () { var self = Container.call(this); // Attach 'Door' asset to the 'Door2' object var doorGraphics = self.attachAsset('Door', { anchorX: 0.5, anchorY: 0.5 }); // Make the 'Door2' object interactive self.interactive = true; // Define the 'down' event handler self.down = function (x, y, obj) { // Remove the existing hammer hammer.destroy(); // Show the Anvil screen gameScreen.visible = true; // Show the map only on the anvil screen map.visible = true; // Show the counter display counterText.visible = true; // Hide the Magic Nursery screen game.magicNursery.visible = false; // Hide the Growth rate counter growthRateText.visible = false; // Recreate the hammer asset hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; }); /**** * Initialize Game ****/ // Create a new text object to display the click counter var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var mineInsideBackground; //{0.1} var map = game.addChild(LK.getAsset('Map', { anchorX: 0.5, anchorY: 0.5 })); map.x = 400; map.y = 2450; map.visible = true; // Initialize the map as visible // Make the map interactive map.interactive = true; // Define the 'down' event handler for the map map.down = function (x, y, obj) { var mapScreen = game.addChild(new Container()); // Attach 'mapbackground' asset to the mapScreen var mapBackground = mapScreen.attachAsset('mapbackground', { anchorX: 0.5, //{1h.1} anchorY: 0.5, //{1h.2} interactive: false // Ensure mapbackground does not block cursor interaction }); //{1h.3} // Attach 'anvilmap' asset to the mapScreen on the top layer var anvilMap = mapScreen.attachAsset('anvilmap', { anchorX: 0.5, anchorY: 0.5, interactive: true }); // Attach 'mine' asset to the mapScreen on the top layer var mine = mapScreen.attachAsset('mine', { anchorX: 0.5, anchorY: 0.5, interactive: true }); mine.x -= 150; // Move the mine asset 150 pixels to the left mine.y -= 150; // Move the mine asset 150 pixels higher // Make mine interactive and define the 'down' event handler mine.down = function (x, y, obj) { // Create a new screen for the mine var mineScreen = game.addChild(new Container()); // Hide the current map screen mapScreen.visible = false; // Disable the active background background.visible = false; // Attach 'mineinsidebackground' asset to the mineScreen on the bottom layer mineInsideBackground = mineScreen.attachAsset('mineinsidebackground', { anchorX: 0.5, anchorY: 0.5, interactive: false, zIndex: -1 // Ensure it is on the bottom layer }); // Attach 'redCristal' asset to the mineScreen on the top layer var redCristal = mineScreen.attachAsset('redCristal', { anchorX: 0.5, anchorY: 0.5, interactive: false, zIndex: 1 // Ensure it is on the top layer }); // Move the redCristal asset to the left and lower position redCristal.x -= 450; // Move 100 pixels to the left redCristal.y += 450; // Move 100 pixels lower // Position the mineScreen at the center mineScreen.x = 2048 / 2; //{1E.1} mineScreen.y = 2732 / 2; //{1E.2} }; // Make anvilMap interactive and define the 'down' event handler anvilMap.down = function (x, y, obj) { // Show the Anvil screen gameScreen.visible = true; // Hide the mineinsidebackground when exiting the mine screen if (mineInsideBackground) { mineInsideBackground.visible = false; } // Hide the map screen mapScreen.visible = false; // Show the counter display counterText.visible = true; // Hide the Growth rate counter growthRateText.visible = false; }; // Hide the current game screen gameScreen.visible = false; // Disable the active background background.visible = false; // Attach a new background or asset to the mapScreen if needed // Example: mapScreen.attachAsset('newBackground', { anchorX: 0.5, anchorY: 0.5 }); // Position the mapScreen at the center mapScreen.x = 2048 / 2; mapScreen.y = 2732 / 2; }; var growthRateText; var growthRateCounter = storage.growthRate; // Initialize growth rate counter from storage var background = game.addChild(new Container()); background.width = 2048; background.height = 2732; background.x = 2048 / 2; background.y = 2732 / 2; var backgroundGraphics = background.attachAsset('background', { anchorX: 0.5, anchorY: 0.5 }); var gameScreen = new Container(); //{1h.1} var newGame = game.addChild(new Container()); newGame.x = 2048 / 2; newGame.y = 2732 * 3 / 4; // Attach 'newGameText' asset to the 'New Game' object var newGameText = newGame.attachAsset('newGameText', { anchorX: 0.5, anchorY: 0.5, stroke: 0xFFFFFF, // White color strokeThickness: 5 // 5px thickness }); // Make the 'New Game' object clickable newGame.interactive = true; newGame.down = function (x, y, obj) { hammer.destroy(); // Create a new game screen gameScreen = game.addChild(new Container()); gameScreen.x = 2048 / 2; gameScreen.y = 2732 / 2; // Attach 'gameScreenBackground' asset to the 'gameScreen' object var gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', { anchorX: 0.5, anchorY: 0.5 }); // Hide the main menu newGame.visible = false; // Disable the background background.visible = false; // Create a new instance of the Anvil class var anvil = gameScreen.addChild(new Anvil()); // Initialize the anvil click counter from storage anvil.clickCounter = storage.forgingSkill; counterText.setText('Forging skill: ' + anvil.clickCounter); // Position 'The anvil' closer to the left center of the game screen anvil.x = 2048 / 10; anvil.y = 2732 / 9; // Add a new object 'Magic Nursery' var magicNursery = gameScreen.addChild(new Door()); // Position 'Magic Nursery' to the left and up magicNursery.x = 2048 / 4; magicNursery.y = 2732 / 2.5; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; // Create a new text object to display the click counter var counterText = new Text2('Forging skill: 0', { size: 50, fill: 0xFFFFFF }); // Position the text object at the top right corner of the screen counterText.anchor.set(0, 0); LK.gui.topLeft.addChild(counterText); counterText.y = 0; counterText.x = 0; growthRateText = new Text2('Growth rate: ' + growthRateCounter, { size: 50, fill: 0xFFFFFF }); growthRateText.anchor.set(0, 0); LK.gui.topLeft.addChild(growthRateText); growthRateText.y = counterText.height; growthRateText.x = 0; // Initialize hammer asset var hammer; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); // Function to make the hammer follow the mouse/touch position function updateHammerPosition(x, y) { if (hammer) { hammer.x = x; hammer.y = y; } } // Make the cursor follow the mouse/touch position game.move = function (x, y, obj) { updateHammerPosition(x, y); }; // Animate cursor rotation on click game.down = function (x, y, obj) { LK.getSound('hammer').play(); tween(hammer, { rotation: -Math.PI / 2 }, { duration: 125, easing: tween.easeInOut, onFinish: function onFinish() { // Create stars around the hammer for 0.25 seconds for (var i = 0; i < 5; i++) { var star = game.addChild(LK.getAsset('star', { anchorX: 0.5, anchorY: 0.5 })); star.x = hammer.x - hammer.width / 2 + Math.random() * 100 - 25; star.y = hammer.y + hammer.height / 2 + Math.random() * 100 - 25; (function (star) { // Make the star move upwards star.update = function () { star.y -= 5; // Move the star upwards by 5 pixels per frame if (star.x < hammer.x) { star.x += 2; // Move the star slightly to the right if on the left side of the hammer } else { star.x -= 2; // Move the star slightly to the left if on the right side of the hammer } }; LK.setTimeout(function () { star.destroy(); }, 250); })(star); } tween(hammer, { rotation: 0 }, { duration: 125, easing: tween.easeInOut }); } }); };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1", {
forgingSkill: 0,
growthRate: 0
});
/****
* Classes
****/
// Create a new class for the anvil object
var Anvil = Container.expand(function () {
var self = Container.call(this);
// Attach 'anvil' asset to the 'Anvil' object
var anvilGraphics = self.attachAsset('anvil', {
anchorX: 0.5,
anchorY: 0.5
});
// Initialize the click counter
self.clickCounter = 0;
// Make the 'Anvil' object interactive
self.interactive = true;
// Define the 'down' event handler
self.down = function (x, y, obj) {
// Increment the click counter
self.clickCounter++;
// Update the text object with the click counter and label
counterText.setText('Forging skill: ' + self.clickCounter);
// Persist the click counter
storage.forgingSkill = self.clickCounter;
// Change the color of the counter text based on the click counter
if (self.clickCounter >= 100 && self.clickCounter < 200) {
counterText.tint = 0x00FF00; // Green
} else if (self.clickCounter >= 200 && self.clickCounter < 300) {
counterText.tint = 0x0000FF; // Blue
} else if (self.clickCounter >= 300) {
counterText.tint = 0x800080; // Purple
}
};
});
// Create a new class for the Door object
var Door = Container.expand(function () {
var self = Container.call(this);
// Attach 'Door' asset to the 'Door' object
var doorGraphics = self.attachAsset('Door', {
anchorX: 0.5,
anchorY: 0.5
});
// Make the 'Door' object interactive
self.interactive = true;
// Define the 'down' event handler
self.down = function (x, y, obj) {
// Remove the existing hammer
hammer.destroy();
// Create a new screen
game.magicNursery = game.addChild(new Container());
// Attach 'magicNurseryBackground' asset to the 'magicNursery' object
var magicNurseryBackground = game.magicNursery.attachAsset('magicNurseryBackground', {
anchorX: 0.5,
anchorY: 0.5,
interactive: false,
// Disable interactivity to prevent blurring on click
scaleX: 2,
// Double the size horizontally
scaleY: 2 // Double the size vertically
});
// Recreate the hammer asset
magicNurseryBackground.x = 2048 / 2;
magicNurseryBackground.y = 2732 / 2;
// Attach 'ForgeOfMatter' asset to the 'magicNursery' object
var forgeOfMatter = game.magicNursery.attachAsset('ForgeOfMatter', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true,
scaleX: 1,
scaleY: 1
});
// Initialize the click counter for ForgeOfMatter
forgeOfMatter.clickCounter = 0;
// Initialize the growth rate click counter from the global growthRateCounter
forgeOfMatter.clickCounter = growthRateCounter;
growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter);
// Define the 'down' event handler for ForgeOfMatter
forgeOfMatter.down = function (x, y, obj) {
// Increment the click counter
forgeOfMatter.clickCounter++;
// Update the text object with the click counter and label
growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter);
// Persist the click counter to the global growthRateCounter
growthRateCounter = forgeOfMatter.clickCounter;
storage.growthRate = growthRateCounter;
};
forgeOfMatter.x = 2048 / 2;
forgeOfMatter.y = 2732 / 1.35;
// Add a new counter to the ForgeOfMatter object
growthRateText.setText('Growth rate: ' + forgeOfMatter.clickCounter);
growthRateText.visible = true;
// Hide the game screen
gameScreen.visible = false;
// Hide the counter display
counterText.visible = false;
// Hide the map when switching to the magic nursery screen
map.visible = false;
// Add a new object 'Door2'
var door2 = game.magicNursery.addChild(new Door2());
// Position 'Door2' to the right, between the center and the edge of the screen
door2.x = 2048 * 0.75;
door2.y = 2732 * 0.9;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
});
// Create a new class for the Door2 object
var Door2 = Container.expand(function () {
var self = Container.call(this);
// Attach 'Door' asset to the 'Door2' object
var doorGraphics = self.attachAsset('Door', {
anchorX: 0.5,
anchorY: 0.5
});
// Make the 'Door2' object interactive
self.interactive = true;
// Define the 'down' event handler
self.down = function (x, y, obj) {
// Remove the existing hammer
hammer.destroy();
// Show the Anvil screen
gameScreen.visible = true;
// Show the map only on the anvil screen
map.visible = true;
// Show the counter display
counterText.visible = true;
// Hide the Magic Nursery screen
game.magicNursery.visible = false;
// Hide the Growth rate counter
growthRateText.visible = false;
// Recreate the hammer asset
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
});
/****
* Initialize Game
****/
// Create a new text object to display the click counter
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
var mineInsideBackground;
//{0.1}
var map = game.addChild(LK.getAsset('Map', {
anchorX: 0.5,
anchorY: 0.5
}));
map.x = 400;
map.y = 2450;
map.visible = true; // Initialize the map as visible
// Make the map interactive
map.interactive = true;
// Define the 'down' event handler for the map
map.down = function (x, y, obj) {
var mapScreen = game.addChild(new Container());
// Attach 'mapbackground' asset to the mapScreen
var mapBackground = mapScreen.attachAsset('mapbackground', {
anchorX: 0.5,
//{1h.1}
anchorY: 0.5,
//{1h.2}
interactive: false // Ensure mapbackground does not block cursor interaction
}); //{1h.3}
// Attach 'anvilmap' asset to the mapScreen on the top layer
var anvilMap = mapScreen.attachAsset('anvilmap', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true
});
// Attach 'mine' asset to the mapScreen on the top layer
var mine = mapScreen.attachAsset('mine', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true
});
mine.x -= 150; // Move the mine asset 150 pixels to the left
mine.y -= 150; // Move the mine asset 150 pixels higher
// Make mine interactive and define the 'down' event handler
mine.down = function (x, y, obj) {
// Create a new screen for the mine
var mineScreen = game.addChild(new Container());
// Hide the current map screen
mapScreen.visible = false;
// Disable the active background
background.visible = false;
// Attach 'mineinsidebackground' asset to the mineScreen on the bottom layer
mineInsideBackground = mineScreen.attachAsset('mineinsidebackground', {
anchorX: 0.5,
anchorY: 0.5,
interactive: false,
zIndex: -1 // Ensure it is on the bottom layer
});
// Attach 'redCristal' asset to the mineScreen on the top layer
var redCristal = mineScreen.attachAsset('redCristal', {
anchorX: 0.5,
anchorY: 0.5,
interactive: false,
zIndex: 1 // Ensure it is on the top layer
});
// Move the redCristal asset to the left and lower position
redCristal.x -= 450; // Move 100 pixels to the left
redCristal.y += 450; // Move 100 pixels lower
// Position the mineScreen at the center
mineScreen.x = 2048 / 2; //{1E.1}
mineScreen.y = 2732 / 2; //{1E.2}
};
// Make anvilMap interactive and define the 'down' event handler
anvilMap.down = function (x, y, obj) {
// Show the Anvil screen
gameScreen.visible = true;
// Hide the mineinsidebackground when exiting the mine screen
if (mineInsideBackground) {
mineInsideBackground.visible = false;
}
// Hide the map screen
mapScreen.visible = false;
// Show the counter display
counterText.visible = true;
// Hide the Growth rate counter
growthRateText.visible = false;
};
// Hide the current game screen
gameScreen.visible = false;
// Disable the active background
background.visible = false;
// Attach a new background or asset to the mapScreen if needed
// Example: mapScreen.attachAsset('newBackground', { anchorX: 0.5, anchorY: 0.5 });
// Position the mapScreen at the center
mapScreen.x = 2048 / 2;
mapScreen.y = 2732 / 2;
};
var growthRateText;
var growthRateCounter = storage.growthRate; // Initialize growth rate counter from storage
var background = game.addChild(new Container());
background.width = 2048;
background.height = 2732;
background.x = 2048 / 2;
background.y = 2732 / 2;
var backgroundGraphics = background.attachAsset('background', {
anchorX: 0.5,
anchorY: 0.5
});
var gameScreen = new Container(); //{1h.1}
var newGame = game.addChild(new Container());
newGame.x = 2048 / 2;
newGame.y = 2732 * 3 / 4;
// Attach 'newGameText' asset to the 'New Game' object
var newGameText = newGame.attachAsset('newGameText', {
anchorX: 0.5,
anchorY: 0.5,
stroke: 0xFFFFFF,
// White color
strokeThickness: 5 // 5px thickness
});
// Make the 'New Game' object clickable
newGame.interactive = true;
newGame.down = function (x, y, obj) {
hammer.destroy();
// Create a new game screen
gameScreen = game.addChild(new Container());
gameScreen.x = 2048 / 2;
gameScreen.y = 2732 / 2;
// Attach 'gameScreenBackground' asset to the 'gameScreen' object
var gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', {
anchorX: 0.5,
anchorY: 0.5
});
// Hide the main menu
newGame.visible = false;
// Disable the background
background.visible = false;
// Create a new instance of the Anvil class
var anvil = gameScreen.addChild(new Anvil());
// Initialize the anvil click counter from storage
anvil.clickCounter = storage.forgingSkill;
counterText.setText('Forging skill: ' + anvil.clickCounter);
// Position 'The anvil' closer to the left center of the game screen
anvil.x = 2048 / 10;
anvil.y = 2732 / 9;
// Add a new object 'Magic Nursery'
var magicNursery = gameScreen.addChild(new Door());
// Position 'Magic Nursery' to the left and up
magicNursery.x = 2048 / 4;
magicNursery.y = 2732 / 2.5;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
// Create a new text object to display the click counter
var counterText = new Text2('Forging skill: 0', {
size: 50,
fill: 0xFFFFFF
});
// Position the text object at the top right corner of the screen
counterText.anchor.set(0, 0);
LK.gui.topLeft.addChild(counterText);
counterText.y = 0;
counterText.x = 0;
growthRateText = new Text2('Growth rate: ' + growthRateCounter, {
size: 50,
fill: 0xFFFFFF
});
growthRateText.anchor.set(0, 0);
LK.gui.topLeft.addChild(growthRateText);
growthRateText.y = counterText.height;
growthRateText.x = 0;
// Initialize hammer asset
var hammer;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
// Function to make the hammer follow the mouse/touch position
function updateHammerPosition(x, y) {
if (hammer) {
hammer.x = x;
hammer.y = y;
}
}
// Make the cursor follow the mouse/touch position
game.move = function (x, y, obj) {
updateHammerPosition(x, y);
};
// Animate cursor rotation on click
game.down = function (x, y, obj) {
LK.getSound('hammer').play();
tween(hammer, {
rotation: -Math.PI / 2
}, {
duration: 125,
easing: tween.easeInOut,
onFinish: function onFinish() {
// Create stars around the hammer for 0.25 seconds
for (var i = 0; i < 5; i++) {
var star = game.addChild(LK.getAsset('star', {
anchorX: 0.5,
anchorY: 0.5
}));
star.x = hammer.x - hammer.width / 2 + Math.random() * 100 - 25;
star.y = hammer.y + hammer.height / 2 + Math.random() * 100 - 25;
(function (star) {
// Make the star move upwards
star.update = function () {
star.y -= 5; // Move the star upwards by 5 pixels per frame
if (star.x < hammer.x) {
star.x += 2; // Move the star slightly to the right if on the left side of the hammer
} else {
star.x -= 2; // Move the star slightly to the left if on the right side of the hammer
}
};
LK.setTimeout(function () {
star.destroy();
}, 250);
})(star);
}
tween(hammer, {
rotation: 0
}, {
duration: 125,
easing: tween.easeInOut
});
}
});
};