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
});
self.upgradeData = upgradeData;
var nameText = new Text2(upgradeData.name, {
size: 32,
fill: 0xFFFFFF
});
nameText.anchor.set(0, 0.5);
nameText.x = -180;
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 = -180;
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 = 180;
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;
}
upgradeData.cost = Math.floor(upgradeData.cost * 1.15);
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
var upgrades = [{
name: 'Squeaky Toy',
type: 'click',
cost: storage.squeakyToyCost || 10,
power: 1,
owned: storage.squeakyToyOwned || 0
}, {
name: 'Premium Treats',
type: 'click',
cost: storage.premiumTreatsCost || 100,
power: 5,
owned: storage.premiumTreatsOwned || 0
}, {
name: 'Ball Thrower',
type: 'auto',
cost: storage.ballThrowerCost || 50,
power: 1,
owned: storage.ballThrowerOwned || 0
}, {
name: 'Treat Dispenser',
type: 'auto',
cost: storage.treatDispenserCost || 500,
power: 5,
owned: storage.treatDispenserOwned || 0
}, {
name: 'Cooling Fan',
type: 'auto',
cost: storage.coolingFanCost || 2000,
power: 20,
owned: storage.coolingFanOwned || 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);
// Main chihuahua
var chihuahua = game.addChild(new Chihuahua());
chihuahua.x = 1024;
chihuahua.y = 800;
// Upgrade buttons
var upgradeButtons = [];
for (var i = 0; i < upgrades.length; i++) {
var button = new UpgradeButton(upgrades[i]);
button.x = 1024;
button.y = 1200 + i * 120;
upgradeButtons.push(button);
game.addChild(button);
}
// 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();
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
@@ -1,6 +1,251 @@
-/****
+/****
+* 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
+ });
+ self.upgradeData = upgradeData;
+ var nameText = new Text2(upgradeData.name, {
+ size: 32,
+ fill: 0xFFFFFF
+ });
+ nameText.anchor.set(0, 0.5);
+ nameText.x = -180;
+ 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 = -180;
+ 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 = 180;
+ 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;
+ }
+ upgradeData.cost = Math.floor(upgradeData.cost * 1.15);
+ LK.getSound('purchase').play();
+ updateUI();
+ saveGame();
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x8B4B9C
+});
+
+/****
+* Game Code
+****/
+// Game state variables
+var points = storage.points || 0;
+var pointsPerClick = storage.pointsPerClick || 1;
+var pointsPerSecond = storage.pointsPerSecond || 0;
+// Upgrade definitions
+var upgrades = [{
+ name: 'Squeaky Toy',
+ type: 'click',
+ cost: storage.squeakyToyCost || 10,
+ power: 1,
+ owned: storage.squeakyToyOwned || 0
+}, {
+ name: 'Premium Treats',
+ type: 'click',
+ cost: storage.premiumTreatsCost || 100,
+ power: 5,
+ owned: storage.premiumTreatsOwned || 0
+}, {
+ name: 'Ball Thrower',
+ type: 'auto',
+ cost: storage.ballThrowerCost || 50,
+ power: 1,
+ owned: storage.ballThrowerOwned || 0
+}, {
+ name: 'Treat Dispenser',
+ type: 'auto',
+ cost: storage.treatDispenserCost || 500,
+ power: 5,
+ owned: storage.treatDispenserOwned || 0
+}, {
+ name: 'Cooling Fan',
+ type: 'auto',
+ cost: storage.coolingFanCost || 2000,
+ power: 20,
+ owned: storage.coolingFanOwned || 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);
+// Main chihuahua
+var chihuahua = game.addChild(new Chihuahua());
+chihuahua.x = 1024;
+chihuahua.y = 800;
+// Upgrade buttons
+var upgradeButtons = [];
+for (var i = 0; i < upgrades.length; i++) {
+ var button = new UpgradeButton(upgrades[i]);
+ button.x = 1024;
+ button.y = 1200 + i * 120;
+ upgradeButtons.push(button);
+ game.addChild(button);
+}
+// 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();
+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();
+ }
+};
\ No newline at end of file