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
User prompt
Add assets 'woodhouse1' 2 3 4 5 6 7
User prompt
Remove house asset
Code edit (7 edits merged)
Please save this source code
User prompt
Remove duplication of 'wreckage' let only the one that replaced house
User prompt
Remove the house from game and make the 'wreckage in its place
User prompt
Make the image of asset 'wreckage' the image of house when game start
User prompt
Add asset 'wreckage' to the game
User prompt
Make this screen scene wood_area
Code edit (1 edits merged)
Please save this source code
Code edit (17 edits merged)
Please save this source code
User prompt
Add class of woodarea
User prompt
Add the asset woodarea to the game
User prompt
Create asset Woodarea
Code edit (1 edits merged)
Please save this source code
User prompt
center the 'stonarea' asset in the screen
User prompt
Add stone area class
User prompt
Add asset 'stonearea' to the game
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
Make it more closer to the half_tree objects
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // 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 }); }); // 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('3:00', { 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: 1.6, anchorY: 3.5, x: 1705, y: 1580 }); 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) { // Replace wreckage with woodhouse1 wreckage.removeChildren(); // Remove existing children before attaching new asset wreckage.attachAsset('woodhouse1', { anchorX: 0.5, anchorY: 0 }); } // Removed the asset '5' from the screen };
===================================================================
--- original.js
+++ change.js
@@ -124,9 +124,9 @@
self.clickCount += 1;
woodScore += 5;
text1.setText(woodScore.toString());
LK.setScore(LK.getScore() + 5);
- if (self.clickCount === 3) {
+ 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
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