User prompt
Put the upgrades a little bit more to the right
User prompt
Make the upgrades more towards the right wall of the screen of course I mean it by like an iPhone 12 mini also put summer in the middle. Please also put a bunch more upgrades and like make it scrollable so I can access all the upgrades and make it feel of cookie clicker or you have so much money and so much crap but it’s barely nothing as soon as you buy the next upgrade because he’s gotta keep adding more than eventually eventually that feels like nothing but then you gotta buy another upgrade and then it goes on it’s really cool. ↪💡 Consider importing and using the following plugins: @upit/storage.v1 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Summer Clicker
Initial prompt
Make a game called summer clicker as the same UI layout as Italian brain rock clicker the browser game make it like cookie clicker too. Also make sure none of the upgrade your assets from the game or in this game. I want it to be completely original you click a Chihuahua and you can imagine the upgrades being toys or food or something and basically it can give you an auto clicker or I can multiply your clicks please do this. It would be really cool and also make a purple background to make it fit my iPhone 12 mini at least cause I really want this to fit on everyone’s phone including mine so I can know what’s going on so I can fix this game and give you further feedback.
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var Chihuahua = Container.expand(function () {
var self = Container.call(this);
var chihuahuaGraphics = self.attachAsset('chihuahua', {
anchorX: 0.5,
anchorY: 0.5
});
self.bounce = function () {
tween(chihuahuaGraphics, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 100,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(chihuahuaGraphics, {
scaleX: 1,
scaleY: 1
}, {
duration: 100,
easing: tween.easeOut
});
}
});
};
self.down = function (x, y, obj) {
points += pointsPerClick;
self.bounce();
LK.getSound('click').play();
var effect = new ClickEffect();
effect.x = x;
effect.y = y;
game.addChild(effect);
effect.animate();
updateUI();
saveGame();
};
return self;
});
var ClickEffect = Container.expand(function () {
var self = Container.call(this);
var effectGraphics = self.attachAsset('clickEffect', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0.8,
scaleX: 0.3,
scaleY: 0.3
});
self.animate = function () {
tween(effectGraphics, {
scaleX: 1.5,
scaleY: 1.5,
alpha: 0
}, {
duration: 400,
easing: tween.easeOut,
onFinish: function onFinish() {
self.destroy();
}
});
};
return self;
});
var UpgradeButton = Container.expand(function (upgradeData) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.8,
scaleY: 0.9
});
self.upgradeData = upgradeData;
var nameText = new Text2(upgradeData.name, {
size: 32,
fill: 0xFFFFFF
});
nameText.anchor.set(0, 0.5);
nameText.x = -150;
nameText.y = -15;
self.addChild(nameText);
var costText = new Text2('Cost: ' + upgradeData.cost, {
size: 24,
fill: 0xFFFF00
});
costText.anchor.set(0, 0.5);
costText.x = -150;
costText.y = 15;
self.addChild(costText);
var countText = new Text2('Owned: ' + upgradeData.owned, {
size: 20,
fill: 0xCCCCCC
});
countText.anchor.set(1, 0.5);
countText.x = 150;
countText.y = 0;
self.addChild(countText);
self.updateDisplay = function () {
costText.setText('Cost: ' + upgradeData.cost);
countText.setText('Owned: ' + upgradeData.owned);
if (points >= upgradeData.cost) {
buttonGraphics.tint = 0x4CAF50;
} else {
buttonGraphics.tint = 0x666666;
}
};
self.down = function (x, y, obj) {
if (points >= upgradeData.cost) {
points -= upgradeData.cost;
upgradeData.owned++;
if (upgradeData.type === 'click') {
pointsPerClick += upgradeData.power;
} else if (upgradeData.type === 'auto') {
pointsPerSecond += upgradeData.power;
}
// Exponential cost increase formula
upgradeData.cost = Math.floor(upgradeData.baseCost * Math.pow(1.15, upgradeData.owned));
LK.getSound('purchase').play();
updateUI();
saveGame();
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x8B4B9C
});
/****
* Game Code
****/
// Game state variables
var points = storage.points || 0;
var pointsPerClick = storage.pointsPerClick || 1;
var pointsPerSecond = storage.pointsPerSecond || 0;
// Upgrade definitions with exponential growth
var upgrades = [{
name: 'Squeaky Toy',
type: 'click',
cost: storage.squeakyToyCost || 15,
baseCost: 15,
power: 1,
owned: storage.squeakyToyOwned || 0
}, {
name: 'Tennis Ball',
type: 'click',
cost: storage.tennisBallCost || 100,
baseCost: 100,
power: 5,
owned: storage.tennisBallOwned || 0
}, {
name: 'Premium Treats',
type: 'click',
cost: storage.premiumTreatsCost || 1100,
baseCost: 1100,
power: 47,
owned: storage.premiumTreatsOwned || 0
}, {
name: 'Chew Bone',
type: 'click',
cost: storage.chewBoneCost || 12000,
baseCost: 12000,
power: 260,
owned: storage.chewBoneOwned || 0
}, {
name: 'Diamond Collar',
type: 'click',
cost: storage.diamondCollarCost || 130000,
baseCost: 130000,
power: 1400,
owned: storage.diamondCollarOwned || 0
}, {
name: 'Ball Thrower',
type: 'auto',
cost: storage.ballThrowerCost || 100,
baseCost: 100,
power: 1,
owned: storage.ballThrowerOwned || 0
}, {
name: 'Treat Dispenser',
type: 'auto',
cost: storage.treatDispenserCost || 1000,
baseCost: 1000,
power: 8,
owned: storage.treatDispenserOwned || 0
}, {
name: 'Doggy Pool',
type: 'auto',
cost: storage.doggyPoolCost || 11000,
baseCost: 11000,
power: 47,
owned: storage.doggyPoolOwned || 0
}, {
name: 'Cooling Fan',
type: 'auto',
cost: storage.coolingFanCost || 120000,
baseCost: 120000,
power: 260,
owned: storage.coolingFanOwned || 0
}, {
name: 'AC Unit',
type: 'auto',
cost: storage.acUnitCost || 1300000,
baseCost: 1300000,
power: 1400,
owned: storage.acUnitOwned || 0
}, {
name: 'Ice Cream Truck',
type: 'auto',
cost: storage.iceCreamTruckCost || 14000000,
baseCost: 14000000,
power: 7800,
owned: storage.iceCreamTruckOwned || 0
}, {
name: 'Beach House',
type: 'auto',
cost: storage.beachHouseCost || 200000000,
baseCost: 200000000,
power: 44000,
owned: storage.beachHouseOwned || 0
}, {
name: 'Water Park',
type: 'auto',
cost: storage.waterParkCost || 3300000000,
baseCost: 3300000000,
power: 260000,
owned: storage.waterParkOwned || 0
}, {
name: 'Resort Chain',
type: 'auto',
cost: storage.resortChainCost || 51000000000,
baseCost: 51000000000,
power: 1600000,
owned: storage.resortChainOwned || 0
}, {
name: 'Summer Island',
type: 'auto',
cost: storage.summerIslandCost || 750000000000,
baseCost: 750000000000,
power: 10000000,
owned: storage.summerIslandOwned || 0
}];
// Load saved upgrade states
for (var i = 0; i < upgrades.length; i++) {
var upgrade = upgrades[i];
if (upgrade.type === 'click') {
pointsPerClick += upgrade.owned * upgrade.power;
} else if (upgrade.type === 'auto') {
pointsPerSecond += upgrade.owned * upgrade.power;
}
}
// UI Elements
var pointsDisplay = new Text2('Points: ' + Math.floor(points), {
size: 60,
fill: 0xFFFFFF
});
pointsDisplay.anchor.set(0.5, 0);
LK.gui.top.addChild(pointsDisplay);
var perSecondDisplay = new Text2('Per Second: ' + pointsPerSecond, {
size: 40,
fill: 0xFFFF00
});
perSecondDisplay.anchor.set(0.5, 0);
perSecondDisplay.y = 80;
LK.gui.top.addChild(perSecondDisplay);
// Summer title
var summerTitle = new Text2('SUMMER', {
size: 120,
fill: 0xFFD700
});
summerTitle.anchor.set(0.5, 0.5);
summerTitle.x = 1024;
summerTitle.y = 400;
game.addChild(summerTitle);
// Main chihuahua
var chihuahua = game.addChild(new Chihuahua());
chihuahua.x = 600;
chihuahua.y = 800;
// Create scrollable upgrade container
var upgradeContainer = new Container();
upgradeContainer.x = 1600;
upgradeContainer.y = 400;
game.addChild(upgradeContainer);
// Upgrade buttons
var upgradeButtons = [];
for (var i = 0; i < upgrades.length; i++) {
var button = new UpgradeButton(upgrades[i]);
button.x = 0;
button.y = i * 100;
upgradeButtons.push(button);
upgradeContainer.addChild(button);
}
// Scroll variables
var scrollY = 0;
var maxScroll = Math.max(0, upgrades.length * 100 - 1800);
var lastTouchY = 0;
var isDragging = false;
// Auto-clicker timer
var autoClickTimer = 0;
function updateUI() {
pointsDisplay.setText('Points: ' + Math.floor(points));
perSecondDisplay.setText('Per Second: ' + pointsPerSecond);
for (var i = 0; i < upgradeButtons.length; i++) {
upgradeButtons[i].updateDisplay();
}
}
function saveGame() {
storage.points = points;
storage.pointsPerClick = pointsPerClick;
storage.pointsPerSecond = pointsPerSecond;
for (var i = 0; i < upgrades.length; i++) {
var upgrade = upgrades[i];
var baseName = upgrade.name.replace(/\s+/g, '');
storage[baseName.toLowerCase() + 'Cost'] = upgrade.cost;
storage[baseName.toLowerCase() + 'Owned'] = upgrade.owned;
}
}
// Initial UI update
updateUI();
// Touch controls for scrolling
game.down = function (x, y, obj) {
if (x > 1200) {
isDragging = true;
lastTouchY = y;
}
};
game.up = function (x, y, obj) {
isDragging = false;
};
game.move = function (x, y, obj) {
if (isDragging && x > 1200) {
var deltaY = y - lastTouchY;
scrollY = Math.max(0, Math.min(maxScroll, scrollY - deltaY));
upgradeContainer.y = 400 - scrollY;
lastTouchY = y;
}
};
game.update = function () {
// Auto-clicker logic
autoClickTimer++;
if (autoClickTimer >= 60) {
// Every second at 60 FPS
points += pointsPerSecond;
autoClickTimer = 0;
updateUI();
if (pointsPerSecond > 0) {
saveGame();
}
}
// Save periodically
if (LK.ticks % 300 === 0) {
// Every 5 seconds
saveGame();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -288,9 +288,9 @@
chihuahua.x = 600;
chihuahua.y = 800;
// Create scrollable upgrade container
var upgradeContainer = new Container();
-upgradeContainer.x = 1400;
+upgradeContainer.x = 1600;
upgradeContainer.y = 400;
game.addChild(upgradeContainer);
// Upgrade buttons
var upgradeButtons = [];