Code edit (6 edits merged)
Please save this source code
User prompt
remove fading light from '5wood' asset make the object fade in in its position for 1 second then fade out up vertical by small distance then hide it.
User prompt
Set the position of '5wood' below the wall1
User prompt
Add position code for '5wood' asset
User prompt
Make its position bellow the wall1 little bit to the right
User prompt
Add animation for the '5wood' when score increased by 5 wood show it & make it go up by short distance slowly then remove it from screen again.
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: tween.to is not a function' in or related to this line: 'tween.to(fiveWood, {' Line Number: 657 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please fix the bug: 'TypeError: LK.effects.fadeOut is not a function' in or related to this line: 'LK.effects.fadeOut(fiveWood, 1000, function () {' Line Number: 657
User prompt
Set the asset '5wood' as animation when the wood score increased show it beside the wood asset from the right.
User prompt
Add class for '5wood'
Code edit (1 edits merged)
Please save this source code
User prompt
Ensure woodhouses appear in the same position as the wreckage when replacing it.
User prompt
change wreckage to woodhous1 when score reach 400. change woodhous1 to woodhous2 when score reach 800. change woodhous2 to woodhous3 when score reach 1200. change woodhous3 to woodhous4 when score reach 1600. change woodhous4 to woodhous5 when score reach 2000. change woodhous5 to woodhous6 when score reach 2500. change woodhous6 to woodhous7 when score reach 3000.
User prompt
After score reach another 400 change the woodhous1 to woodhous2 so on
User prompt
Add woodhouse1 to the game
User prompt
change wreckage asset to woodhouse1 if wood score reach 400.
User prompt
Add class of woodhouse1 2 3 4 5 6 7
User prompt
Remove statue time of 3 min let only the statue of 30 sec.
User prompt
When score is 400 add woodhouse1 in place of wreckage.
User prompt
Hide the tree every 3 clicks not only one time.
User prompt
change time to 30 second only
User prompt
Let the click always 3 even after the trees appearance
User prompt
Please fix the bug: 'TypeError: wreckage.setTexture is not a function' in or related to this line: 'wreckage.setTexture(LK.getAsset('woodhouse1', {}).texture);' Line Number: 545
User prompt
Replace image of wreckage by woodhouse1 image when woodscore is reached 400
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // 5Wood class representing the 5wood asset var FiveWood = Container.expand(function () { var self = Container.call(this); var fiveWoodGraphics = self.attachAsset('5wood', { anchorX: 0.5, anchorY: 0.5 }); }); // HalfTree class representing half trees var HalfTree = Container.expand(function () { var self = Container.call(this); var halfTreeGraphics = self.attachAsset('half_tree', { anchorX: 0.5, anchorY: 0.5 }); }); // Statue class representing a clickable statue var Statue = Container.expand(function () { var self = Container.call(this); var statueGraphics = self.attachAsset('woodstatue', { anchorX: 0.44, anchorY: -2 }); self.clickCount = 0; // Event handler for clicks on the statue self.down = function (x, y, obj) { // Ensure statue click count increments only when statue is clicked self.clickCount += 1; // Increment the statue's click count console.log("Statue clicked! Total clicks: ", self.clickCount); woodScore += 5; // Increment score even if the statue is hidden text1.setText(woodScore.toString()); LK.setScore(LK.getScore() + 5); // Update the global score console.log("Current woodScore: ", woodScore); // Log the current woodScore console.log("Current woodScore: ", woodScore); // Log the current woodScore }; }); // StoneArea class representing stone areas var StoneArea = Container.expand(function () { var self = Container.call(this); var stoneAreaGraphics = self.attachAsset('stonearea', { anchorX: 3.2, anchorY: -2.4 }); }); // Time class to manage and display timers var Time = Container.expand(function (duration, callback) { var self = Container.call(this); self.duration = duration; // Total duration in seconds self.remainingTime = duration; // Remaining time in seconds self.callback = callback; // Callback function to call when time is up // Create a text object to display the timer var timerText = new Text2(self.formatTime(self.remainingTime), { size: 70, fill: 0x774700 }); timerText.anchor.set(0.5, 1); self.addChild(timerText); // Update the timer every second var timerInterval = LK.setInterval(function () { if (self.remainingTime > 0) { self.remainingTime--; timerText.setText(self.formatTime(self.remainingTime)); } else { LK.clearInterval(timerInterval); if (self.callback) { self.callback(); } } }, 1000); // Format time as MM:SS self.formatTime = function (seconds) { var minutes = Math.floor(seconds / 60); var secs = seconds % 60; return minutes + ':' + (secs < 10 ? '0' : '') + secs; }; }); // Tree class representing trees var Tree = Container.expand(function (assetId) { var self = Container.call(this); var treeGraphics = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }); // Tree7 class representing tree7 var Tree7 = Container.expand(function () { var self = Container.call(this); var tree7Graphics = self.attachAsset('tree7', { anchorX: 0.5, anchorY: 0.7 }); }); // Tree8 class representing tree8 var Tree8 = Container.expand(function () { var self = Container.call(this); var tree8Graphics = self.attachAsset('tree8', { anchorX: 0.5, anchorY: 0.7 }); }); // WoodArea class representing wood areas var WoodArea = Container.expand(function () { var self = Container.call(this); var woodAreaGraphics = self.attachAsset('woodarea', { anchorX: 0.5, anchorY: 0.5 }); }); // Woodhouse1 class representing the first woodhouse var Woodhouse1 = Container.expand(function () { var self = Container.call(this); var woodhouse1Graphics = self.attachAsset('woodhouse1', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse2 class representing the second woodhouse var Woodhouse2 = Container.expand(function () { var self = Container.call(this); var woodhouse2Graphics = self.attachAsset('woodhouse2', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse3 class representing the third woodhouse var Woodhouse3 = Container.expand(function () { var self = Container.call(this); var woodhouse3Graphics = self.attachAsset('woodhouse3', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse4 class representing the fourth woodhouse var Woodhouse4 = Container.expand(function () { var self = Container.call(this); var woodhouse4Graphics = self.attachAsset('woodhouse4', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse5 class representing the fifth woodhouse var Woodhouse5 = Container.expand(function () { var self = Container.call(this); var woodhouse5Graphics = self.attachAsset('woodhouse5', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse6 class representing the sixth woodhouse var Woodhouse6 = Container.expand(function () { var self = Container.call(this); var woodhouse6Graphics = self.attachAsset('woodhouse6', { anchorX: 0.5, anchorY: 0 }); }); // Woodhouse7 class representing the seventh woodhouse var Woodhouse7 = Container.expand(function () { var self = Container.call(this); var woodhouse7Graphics = self.attachAsset('woodhouse7', { anchorX: 0.5, anchorY: 0 }); }); // Woodstatue class representing a generic wood statue var Woodstatue = Container.expand(function () { var self = Container.call(this); var woodstatueGraphics = self.attachAsset('woodstatue', { anchorX: 0.5, anchorY: 0.5 }); self.clickCount = 0; self.tree = null; self.updatePosition = function (x, y) { self.x = x; self.y = y; }; self.down = function (x, y, obj) { if (self.tree && self.tree.visible) { self.clickCount += 1; woodScore += 5; text1.setText(woodScore.toString()); LK.setScore(LK.getScore() + 5); if (self.clickCount % 3 === 0) { self.tree.visible = false; self.visible = false; // Hide the woodstatue var timerText = self.timerText; // Access the timer text associated with this woodstatue timerText.visible = true; // Show the timer text var remainingTime = 30; // 30 seconds var timerInterval = LK.setInterval(function () { if (remainingTime > 0) { remainingTime--; var minutes = Math.floor(remainingTime / 60); var seconds = remainingTime % 60; timerText.setText(minutes + ':' + (seconds < 10 ? '0' : '') + seconds); } else { LK.clearInterval(timerInterval); timerText.setText(''); // Clear text when time is up timerText.visible = false; // Hide the timer text self.tree.visible = true; self.visible = true; // Show the woodstatue again } }, 1000); } } }; }); /**** * Initialize Game ****/ //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ // Add and position the wreckage asset in place of the house var wreckage = LK.getAsset('wreckage', { anchorX: 0.5, anchorY: 0, x: 1705, // Position wreckage at the same x coordinate as the house y: 1580 // Position wreckage at the same y coordinate as the house }); game.addChild(wreckage); // Add and center the stonearea asset in the game var stoneArea = new StoneArea(); stoneArea.x = 2048 / 2; // Center horizontally stoneArea.y = 2732 / 2; // Center vertically game.addChild(stoneArea); // Add and center the woodarea asset in the game var woodArea = LK.getAsset('woodarea', { anchorX: -2.4, anchorY: 3.3, x: 2048 / 2, // Center horizontally y: 2732 / 2 // Center vertically }); game.addChild(woodArea); var tree1 = LK.getAsset('tree1', { anchorX: 0.5, anchorY: 0.7, x: 1205, y: 1580 }); game.addChild(tree1); var halfTree1 = new HalfTree(); halfTree1.x = tree1.x; halfTree1.y = tree1.y + tree1.height / 2 + halfTree1.height / 2 - 117; game.addChildAt(halfTree1, game.getChildIndex(tree1)); var tree2 = LK.getAsset('tree2', { anchorX: 0.5, anchorY: 0.7, x: tree1.x - tree1.width, // Position tree2 beside tree1 from the left y: tree1.y }); game.addChild(tree2); var halfTree2 = new HalfTree(); halfTree2.x = tree2.x; halfTree2.y = tree2.y + tree2.height / 2 + halfTree2.height / 2 - 117; game.addChildAt(halfTree2, game.getChildIndex(tree2)); var tree3 = LK.getAsset('tree3', { anchorX: 0.5, anchorY: 0.7, x: tree2.x - tree2.width, // Position tree3 beside tree2 from the left y: tree2.y }); game.addChild(tree3); var halfTree3 = new HalfTree(); halfTree3.x = tree3.x; halfTree3.y = tree3.y + tree3.height / 2 + halfTree3.height / 2 - 117; game.addChildAt(halfTree3, game.getChildIndex(tree3)); var tree4 = LK.getAsset('tree4', { anchorX: 0.5, anchorY: 0.7, x: tree3.x - tree3.width, // Position tree4 beside tree3 y: tree3.y // Align tree4 with tree3 }); game.addChild(tree4); var halfTree4 = new HalfTree(); halfTree4.x = tree4.x; halfTree4.y = tree4.y + tree4.height / 2 + halfTree4.height / 2 - 117; game.addChildAt(halfTree4, game.getChildIndex(tree4)); var tree5 = LK.getAsset('tree5', { anchorX: 0.5, anchorY: 0.7, x: tree1.x, // Align tree5 with tree1 y: tree1.y + tree1.height // Position tree5 below tree1 }); game.addChild(tree5); var halfTree5 = new HalfTree(); halfTree5.x = tree5.x; halfTree5.y = tree5.y + tree5.height / 2 + halfTree5.height / 2 - 117; game.addChildAt(halfTree5, game.getChildIndex(tree5)); var tree6 = LK.getAsset('tree6', { anchorX: 0.5, anchorY: 0.7, x: tree5.x - tree5.width, // Position tree6 beside tree5 from the left y: tree5.y }); game.addChild(tree6); var halfTree6 = new HalfTree(); halfTree6.x = tree6.x; halfTree6.y = tree6.y + tree6.height / 2 + halfTree6.height / 2 - 117; game.addChildAt(halfTree6, game.getChildIndex(tree6)); // Add Tree7 and Tree8 instances var tree7 = new Tree7(); tree7.x = tree6.x - tree7.width; tree7.y = tree6.y; game.addChild(tree7); var halfTree7 = new HalfTree(); halfTree7.x = tree7.x; halfTree7.y = tree7.y + tree7.height / 2 + halfTree7.height / 2 - 117; game.addChildAt(halfTree7, game.getChildIndex(tree7)); var tree8 = new Tree8(); tree8.x = tree7.x - tree8.width; tree8.y = tree7.y; game.addChild(tree8); var halfTree8 = new HalfTree(); halfTree8.x = tree8.x; halfTree8.y = tree8.y + tree8.height / 2 + halfTree8.height / 2 - 117; game.addChildAt(halfTree8, game.getChildIndex(tree8)); function positionWoodstatue(woodstatue, tree) { woodstatue.x = tree.x; woodstatue.y = tree.y + tree.height / 2 + woodstatue.height / 2 - 150; } // Initialize and add woodstatue instances for each tree var trees = [tree1, tree2, tree3, tree4, tree5, tree6, tree7, tree8]; trees.forEach(function (tree) { var woodstatue = new Woodstatue(); woodstatue.x = tree.x; woodstatue.y = tree.y + tree.height / 2 + woodstatue.height / 2 - 150; woodstatue.tree = tree; game.addChildAt(woodstatue, game.getChildIndex(tree)); // Add timer text above each tree var timerText = new Text2('0:30', { size: 70, fill: 0x774700 }); timerText.anchor.set(0.5, 1); timerText.x = tree.x; timerText.y = tree.y - tree.height / 2 + 120; // Position even closer above the half_tree timerText.visible = false; // Initially hide the timer text game.addChild(timerText); woodstatue.timerText = timerText; // Associate the timer text with the woodstatue }); // Add tree1 beside the house close to it from the left side //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // Display timer above the green bar if text is less than '3/3' // Initialize arrays and variables var resources = []; var houses = []; var score = 200; var woodScore = 200; var resources = []; var houses = []; var score = 0; var bird = LK.getAsset('bird', { anchorX: 0.5, anchorY: 0.5, x: wall.x + wall.width / 2 + 50, // Position bird slightly to the right of wall1 y: wall.y + wall.height + 50 // Position bird below wall1 }); game.addChild(bird); var wall = LK.getAsset('wall1', { anchorX: 0.5, anchorY: 0, x: 1017, y: 0, scaleX: 2 }); game.addChild(wall); game.down = function (x, y, obj) { [tree1, tree2, tree3, tree4, tree5, tree6].forEach(function (tree) { // Create a woodstatue for each tree if (tree.intersects({ x: x, y: y })) { // Replace tree with half_tree var halfTree = new HalfTree(); halfTree.x = tree.x; halfTree.y = tree.y; game.addChild(halfTree); tree.visible = false; var woodText = new Text2('+5 wood', { size: 50, fill: 0xffffff }); woodText.anchor.set(0.5, 0.5); woodText.x = x - 50; // Position the text to the left of the clicked point woodText.y = y - 60; game.addChild(woodText); LK.effects.moveTo(woodText, woodText.x, woodText.y - 100, 1000, function () { woodText.destroy(); }); } }); }; game.up = function (x, y, obj) {}; // Update game logic // Add a small text of score at the top middle of the screen var text1 = new Text2(woodScore.toString(), { size: 33, fill: 0xad6d19 }); text1.anchor.set(8.6, -0.4); // Center the text horizontally at the top var wood = LK.getAsset('wood', { anchorX: -4, anchorY: -0.7, x: text1.x - 20, // Position the wood asset to the left of text1 y: text1.y }); game.addChild(wood); text1.x = wood.x + wood.width / 2 + 10; // Position the text to the right of the wood asset text1.y = wood.y; // Align the text vertically with the wood asset LK.gui.top.addChild(text1); // Add wood asset beside score of text one on the left side of it. var text2 = new Text2('200', { size: 33, fill: 0xffffff }); text2.anchor.set(2.2, -0.4); // Center the text horizontally at the top LK.gui.top.addChild(text2); // Add stone asset beside score of text2 on the left side of it. var stone = LK.getAsset('stone', { anchorX: -12.8, anchorY: -0.7, x: text2.x - 20, // Position the stone asset to the left of text2 y: text2.y }); game.addChild(stone); var text3 = new Text2('200', { size: 33, fill: 0xac4002 }); text3.anchor.set(-3.25, -0.4); // Center the text horizontally at the top // Add bronze asset beside score of text3 on the left side of it. var bronze = LK.getAsset('bronze', { anchorX: -21.43, anchorY: -0.7, x: 0, // Temporary position, will be updated after text3 is defined y: 0 // Temporary position, will be updated after text3 is defined }); game.addChild(bronze); text3.x = bronze.x + bronze.width / 2 + 10; // Position the text to the right of the bronze asset text3.y = bronze.y; // Align the text vertically with the bronze asset LK.gui.top.addChild(text3); var text4 = new Text2('200', { size: 33, fill: 0xc7c7c7 }); text4.anchor.set(-10.1, -0.4); // Center the text horizontally at the top LK.gui.top.addChild(text4); // Add silver asset beside score of text4 on the right side of it. var silver = LK.getAsset('silver', { anchorX: -30.1, anchorY: -0.7, x: text4.x + 20, // Position the silver asset to the right of text4 y: text4.y }); game.addChild(silver); // Add gold asset beside score of text5 on the left side of it. var gold = LK.getAsset('gold', { anchorX: -3.6, anchorY: -2.2, x: 0, // Temporary position, will be updated after text5 is defined y: 0 // Temporary position, will be updated after text5 is defined }); game.addChild(gold); var text5 = new Text2('200', { size: 33, fill: 0xfffb03 }); text5.anchor.set(9, -1.9); // Center the text horizontally at the top text5.x = gold.x + gold.width / 2 + 10; // Position the text to the right of the gold asset text5.y = gold.y; // Align the text vertically with the gold asset LK.gui.top.addChild(text5); var text6 = new Text2('200', { size: 33, fill: 0xf700ff }); text6.anchor.set(2.2, -1.9); // Center the text horizontally at the top LK.gui.top.addChild(text6); // Add crystal asset beside score of text6 on the left side of it. var crystal = LK.getAsset('crystal', { anchorX: -12.8, anchorY: -2.2, x: text6.x - 20, // Position the crystal asset to the left of text6 y: text6.y }); game.addChild(crystal); var text7 = new Text2('200', { size: 33, fill: 0xad6d19 }); text7.anchor.set(-3.65, -1.9); // Center the text horizontally at the top text7.x = crystal.x + crystal.width / 2 + 10; // Position the text to the right of the crystal asset text7.y = crystal.y; // Align the text vertically with the crystal asset LK.gui.top.addChild(text7); var text8 = new Text2('200', { size: 33, fill: 0xad6d19 }); text8.anchor.set(-10.1, -1.9); // Center the text horizontally at the top LK.gui.top.addChild(text8); var grass = LK.getAsset('grass', { anchorX: 0.5, anchorY: -1, x: 1024, y: 1366, scaleX: 1, scaleY: 1 }); game.addChildAt(grass, 0); // Add sky asset to the game as background var sky = LK.getAsset('sky', { anchorX: 0.5, anchorY: 0.58, x: 1024, y: 1310, scaleX: 7, scaleY: 5.6 }); game.addChildAt(sky, 0); // Add dirt asset to the game as background var dirt = LK.getAsset('dirt', { anchorX: 0.06, anchorY: -1.66, x: 100, y: 500, scaleX: 19, scaleY: 3 }); game.addChildAt(dirt, 1); game.move = function (x, y, obj) {}; game.update = function () { houses.forEach(function (house) { // Logic for house updates }); // Check if woodScore has reached 400 if (woodScore >= 400 && woodScore < 800) { // Replace wreckage with woodhouse1 wreckage.destroy(); // Destroy the current wreckage asset var woodhouse1 = new Woodhouse1(); woodhouse1.x = wreckage.x; // Maintain the same x coordinate woodhouse1.y = wreckage.y; // Maintain the same y coordinate game.addChild(woodhouse1); // Add the new woodhouse1 asset to the game } else if (woodScore >= 800 && woodScore < 1200) { // Replace woodhouse1 with woodhouse2 var woodhouse2 = new Woodhouse2(); woodhouse2.x = woodhouse1.x; // Maintain the same x coordinate woodhouse2.y = woodhouse1.y; // Maintain the same y coordinate game.addChild(woodhouse2); // Add the new woodhouse2 asset to the game } else if (woodScore >= 1200 && woodScore < 1600) { // Replace woodhouse2 with woodhouse3 var woodhouse3 = new Woodhouse3(); woodhouse3.x = woodhouse2.x; // Maintain the same x coordinate woodhouse3.y = woodhouse2.y; // Maintain the same y coordinate game.addChild(woodhouse3); // Add the new woodhouse3 asset to the game } else if (woodScore >= 1600 && woodScore < 2000) { // Replace woodhouse3 with woodhouse4 var woodhouse4 = new Woodhouse4(); woodhouse4.x = woodhouse3.x; // Maintain the same x coordinate woodhouse4.y = woodhouse3.y; // Maintain the same y coordinate game.addChild(woodhouse4); // Add the new woodhouse4 asset to the game } else if (woodScore >= 2000 && woodScore < 2500) { // Replace woodhouse4 with woodhouse5 var woodhouse5 = new Woodhouse5(); woodhouse5.x = woodhouse4.x; // Maintain the same x coordinate woodhouse5.y = woodhouse4.y; // Maintain the same y coordinate game.addChild(woodhouse5); // Add the new woodhouse5 asset to the game } else if (woodScore >= 2500 && woodScore < 3000) { // Replace woodhouse5 with woodhouse6 var woodhouse6 = new Woodhouse6(); woodhouse6.x = woodhouse5.x; // Maintain the same x coordinate woodhouse6.y = woodhouse5.y; // Maintain the same y coordinate game.addChild(woodhouse6); // Add the new woodhouse6 asset to the game } else if (woodScore >= 3000) { // Replace woodhouse6 with woodhouse7 var woodhouse7 = new Woodhouse7(); woodhouse7.x = woodhouse6.x; // Maintain the same x coordinate woodhouse7.y = woodhouse6.y; // Maintain the same y coordinate game.addChild(woodhouse7); // Add the new woodhouse7 asset to the game } // Removed the asset '5' from the screen if (woodScore % 5 === 0) { var fiveWood = new FiveWood(); fiveWood.x = wood.x + wood.width + 50; // Position 5wood to the right of the wood asset fiveWood.y = wood.y; // Align 5wood vertically with the wood asset game.addChild(fiveWood); // Animate the 5wood to move up and fade out tween(fiveWood, { y: fiveWood.y - 100, // Move up by 100 pixels alpha: 0 // Fade out }, { duration: 2000, // Duration of 2 seconds onFinish: function onFinish() { fiveWood.destroy(); // Remove from screen after animation } }); } };
===================================================================
--- original.js
+++ change.js
@@ -373,12 +373,13 @@
var resources = [];
var houses = [];
var score = 0;
var bird = LK.getAsset('bird', {
- anchorX: 1.6,
- anchorY: 3.5,
- x: 1705,
- y: 1580
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: wall.x + wall.width / 2 + 50,
+ // Position bird slightly to the right of wall1
+ y: wall.y + wall.height + 50 // Position bird below wall1
});
game.addChild(bird);
var wall = LK.getAsset('wall1', {
anchorX: 0.5,
2D wreckage of wood, square, HD colors. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
House from the front facing the screen with big sign above it have description "SHOP", Hd colors
coin, have "AD" not "$", hd colors. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows