/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
// Add background image to the game
var background = LK.getAsset('bg1', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
});
game.addChild(background);
// Function to increment points based on pointsPerSecond
function incrementPoints() {
points += pointsPerSecond;
pointsText.setText('Points: ' + points);
if (points >= 1550 && background.texture !== LK.getAsset('Bg2', {
anchorX: 0.5,
anchorY: 0.5
}).texture) {
background.texture = LK.getAsset('Bg2', {
anchorX: 0.5,
anchorY: 0.5
}).texture;
background.x = 2048 / 2;
background.y = 2732 / 2;
} else if (points >= 1000000) {
treeGrowthStageText.setText('Growth Stage: Colossal');
treeSeedling.texture = LK.getAsset('Colossal_tree', {
anchorX: 0.5,
anchorY: 1.0
}).texture;
} else if (points >= 100000) {
treeGrowthStageText.setText('Growth Stage: Giant');
treeSeedling.texture = LK.getAsset('Giant_tree', {
anchorX: 0.5,
anchorY: 1.0
}).texture;
} else if (points >= 29000) {
treeGrowthStageText.setText('Growth Stage: Big');
treeSeedling.texture = LK.getAsset('Tree_big', {
anchorX: 0.5,
anchorY: 1.0
}).texture;
} else if (points >= 1000) {
treeGrowthStageText.setText('Growth Stage: Normal');
treeSeedling.texture = LK.getAsset('Tree_normal', {
anchorX: 0.5,
anchorY: 1.0
}).texture;
} else {
treeGrowthStageText.setText('Growth Stage: Seedling');
treeSeedling.texture = LK.getAsset('tree', {
anchorX: 0.5,
anchorY: 1.0
}).texture;
}
}
// Set an interval to call incrementPoints every second
LK.setInterval(incrementPoints, 1000);
// Function to determine the growth stage based on the size of the tree asset
function getTreeGrowthStage(treeAsset) {
var size = treeAsset.width * treeAsset.height;
if (size >= 800 * 765.63) {
return 'Colossal';
} else if (size >= 500 * 500) {
return 'Giant';
} else if (size >= 250 * 259.11) {
return 'Big';
} else if (size >= 100 * 111.79) {
return 'Normal';
} else {
return 'Seedling';
}
}
// Retrieve the tree seedling asset and place it at the bottom of the screen
var treeSeedling = LK.getAsset('tree', {
anchorX: 0.5,
anchorY: 1.0,
x: 2048 / 2,
y: 2732
});
game.addChild(treeSeedling);
// Retrieve the upgrade button asset and place it at the middle-right of the screen
var upgradeButton = LK.getAsset('Upgrade_button', {
anchorX: 1.0,
anchorY: 0.5,
x: 2048 - 50,
y: 2732 / 2
});
game.addChild(upgradeButton);
// Create a Text2 object to display the name 'watering can' above the upgrade button
var upgradeNameText = new Text2('watering can', {
size: 50,
fill: 0xFFFFFF
});
upgradeNameText.anchor.set(0.5, 1.0);
upgradeNameText.x = upgradeButton.x - upgradeButton.width / 2;
upgradeNameText.y = upgradeButton.y - upgradeButton.height / 2 - 10;
game.addChild(upgradeNameText);
// Create a Text2 object to display the cost above the upgrade button
var upgradeCostText = new Text2('Cost: 100', {
size: 40,
fill: 0xFFFFFF
});
upgradeCostText.anchor.set(0.5, 1.0);
upgradeCostText.x = upgradeButton.x - upgradeButton.width / 2;
upgradeCostText.y = upgradeNameText.y - 40;
game.addChild(upgradeCostText);
// Retrieve the second upgrade button asset and place it below the first upgrade button
var upgradeButton2 = LK.getAsset('Upgrade_button2', {
anchorX: 1.0,
anchorY: 0.5,
x: 2048 - 50,
y: 2732 / 2 + 400
});
game.addChild(upgradeButton2);
// Create a Text2 object to display the name 'fertilizer' above the second upgrade button
var upgradeNameText2 = new Text2('fertilizer', {
size: 50,
fill: 0xFFFFFF
});
upgradeNameText2.anchor.set(0.5, 1.0);
upgradeNameText2.x = upgradeButton2.x - upgradeButton2.width / 2;
upgradeNameText2.y = upgradeButton2.y - upgradeButton2.height / 2 - 10;
game.addChild(upgradeNameText2);
// Create a Text2 object to display the cost above the second upgrade button
var upgradeCostText2 = new Text2('Cost: 200', {
size: 40,
fill: 0xFFFFFF
});
upgradeCostText2.anchor.set(0.5, 1.0);
upgradeCostText2.x = upgradeButton2.x - upgradeButton2.width / 2;
upgradeCostText2.y = upgradeNameText2.y - 40;
game.addChild(upgradeCostText2);
// Add touch event to upgradeButton
upgradeButton.down = function (x, y, obj) {
// Logic for upgrading the tree
console.log("Upgrade button pressed");
// Apply drop effect
LK.effects.flashObject(upgradeButton, 0x000000, 500);
if (points >= upgradeCost) {
LK.getSound('Buy_upgrade').play();
points -= upgradeCost;
upgradeCost *= 1.5; // Increase the cost by 50%
upgradeCostText.setText('Cost: ' + Math.ceil(upgradeCost));
pointsText.setText('Points: ' + points);
// Increase points per second
pointsPerSecond += 1;
// Additional logic for upgrading the tree can be added here
} else {
console.log("Not enough points to upgrade");
LK.getSound('insufficient_sound').play();
}
};
// Retrieve the third upgrade button asset and place it below the second upgrade button
var upgradeButton3 = LK.getAsset('Upgrade_button_3', {
anchorX: 1.0,
anchorY: 0.5,
x: 2048 - 50,
y: 2732 / 2 + 800
});
game.addChild(upgradeButton3);
// Create a Text2 object to display the name 'soil' above the third upgrade button
var upgradeNameText3 = new Text2('soil', {
size: 50,
fill: 0xFFFFFF
});
upgradeNameText3.anchor.set(0.5, 1.0);
upgradeNameText3.x = upgradeButton3.x - upgradeButton3.width / 2;
upgradeNameText3.y = upgradeButton3.y - upgradeButton3.height / 2 - 10;
game.addChild(upgradeNameText3);
// Create a Text2 object to display the cost above the third upgrade button
var upgradeCostText3 = new Text2('Cost: 1000', {
size: 40,
fill: 0xFFFFFF
});
upgradeCostText3.anchor.set(0.5, 1.0);
upgradeCostText3.x = upgradeButton3.x - upgradeButton3.width / 2;
upgradeCostText3.y = upgradeNameText3.y - 40;
game.addChild(upgradeCostText3);
// Add touch event to upgradeButton3
upgradeButton3.down = function (x, y, obj) {
// Logic for upgrading the tree
console.log("Upgrade button 3 pressed");
// Apply drop effect
LK.effects.flashObject(upgradeButton3, 0x000000, 500);
if (points >= upgradeCost3) {
LK.getSound('Buy_upgrade_3').play();
points -= upgradeCost3;
upgradeCost3 *= 2; // Increase the cost by 100%
upgradeCostText3.setText('Cost: ' + Math.ceil(upgradeCost3));
pointsText.setText('Points: ' + points);
// Increase points per second
pointsPerSecond += 15; // UpgradeButton3 gives more points per second
// Additional logic for upgrading the tree can be added here
} else {
console.log("Not enough points to upgrade");
LK.getSound('insufficient_sound').play();
}
};
// Add touch event to upgradeButton2
upgradeButton2.down = function (x, y, obj) {
// Logic for upgrading the tree
console.log("Upgrade button 2 pressed");
// Apply drop effect
LK.effects.flashObject(upgradeButton2, 0x000000, 500);
if (points >= upgradeCost2) {
LK.getSound('Buy_upgrade_2').play();
points -= upgradeCost2;
upgradeCost2 *= 2; // Increase the cost by 100%
upgradeCostText2.setText('Cost: ' + Math.ceil(upgradeCost2));
pointsText.setText('Points: ' + points);
// Increase points per second
pointsPerSecond += 3; // UpgradeButton2 gives more points per second
// Additional logic for upgrading the tree can be added here
} else {
console.log("Not enough points to upgrade");
LK.getSound('insufficient_sound').play();
}
};
// Add touch event to treeSeedling
treeSeedling.down = function (x, y, obj) {
// Increase points
points += 1;
LK.getSound('Click').play();
pointsText.setText('Points: ' + points);
// Apply drop effect
LK.effects.flashObject(treeSeedling, 0x000000, 500);
};
// Variable to track the growth stage of the tree
var treeGrowthStage = getTreeGrowthStage(treeSeedling);
// Variable to track points
var points = 0;
// Variable to track the cost of the first upgrade
var upgradeCost = 100;
// Variable to track the cost of the second upgrade
var upgradeCost2 = 200;
// Variable to track points per second
var pointsPerSecond = 0;
// Variable to track the cost of the third upgrade
var upgradeCost3 = 1000;
// Function to update the X position of points
function updatePointsX(newX) {
pointsText.x = newX;
}
// Function to update the Y position of points
function updatePointsY(newY) {
pointsText.y = newY;
}
// Create a Text2 object to display the tree growth stage
var treeGrowthStageText = new Text2('Growth Stage: ' + getTreeGrowthStage(treeSeedling), {
size: 100,
fill: 0xFFFFFF
});
// Create a Text2 object to display the points
var pointsText = new Text2('Points: ' + points, {
size: 100,
fill: 0xFFFFFF
});
pointsText.anchor.set(0.5, -1);
LK.gui.top.addChild(pointsText);
// Set the anchor point to the center of the top edge
treeGrowthStageText.anchor.set(0.5, 0);
// Position the text at the top-center of the screen
LK.gui.top.addChild(treeGrowthStageText);
;
Tree. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Giant_tree. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
panel. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
close button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Sticker_approved_code. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
watering can button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
fertilizer button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
soil button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
bg of rocks waterfall. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
nighttime scene or a different landscape altogether, such as a forest, desert, or underwater setting. The choice of `bg2` would depend on the narrative or progression of the game, offering variety and enhancing the player's experience by changing the visual context as they advance.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows