User prompt
theres a bug where if i fail it plays both sounds
User prompt
make a noise when you click the button
User prompt
make it so it restarts my coins when i play again ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
make it show a image and not a text
User prompt
make it say if you lose money or not
User prompt
Please fix the bug: 'Timeout.tick error: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'resultText.style.fill = "#00AA00";' Line Number: 96
Code edit (1 edits merged)
Please save this source code
User prompt
Meme Millionaire
Initial prompt
make memes to buy a house house cost 100000 coins and you have to click make meme to make a meme and sometimes it will say realey good video and give 1000 coins and sometimes it says bad video witch makes you lose 500 coins and it asol shows a image of what meme you posted
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { coins: 2000, bestScore: 0 }); /**** * Classes ****/ var Button = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('makeButton', { anchorX: 0.5, anchorY: 0.5 }); var buttonText = new Text2('MAKE MEME', { size: 50, fill: 0xFFFFFF }); buttonText.anchor.set(0.5, 0.5); self.addChild(buttonText); self.down = function () { tween(self.scale, { x: 0.9, y: 0.9 }, { duration: 100, easing: tween.easeOut }); }; self.up = function () { tween(self.scale, { x: 1, y: 1 }, { duration: 100, easing: tween.easeOut }); }; return self; }); var House = Container.expand(function () { var self = Container.call(this); var houseBase = self.attachAsset('house', { anchorX: 0.5, anchorY: 1.0 }); var roof = self.attachAsset('houseRoof', { anchorX: 0.5, anchorY: 1.0, y: -houseBase.height }); // Make roof triangular by scaling down the width at top roof.scale.set(1, 1); return self; }); var MemePost = Container.expand(function () { var self = Container.call(this); var memeBackground = self.attachAsset('memeBackground', { anchorX: 0.5, anchorY: 0.5 }); var memeText = new Text2('', { size: 36, fill: 0x000000 }); memeText.anchor.set(0.5, 0.5); self.addChild(memeText); var resultText = new Text2('', { size: 40, fill: 0x000000 }); resultText.anchor.set(0.5, 0.5); resultText.y = memeBackground.height / 2 + 50; self.addChild(resultText); self.setMeme = function (text, isViral) { memeText.setText(text); if (isViral) { resultText.setText('VIRAL! +1000 COINS'); resultText.style.fill = "#00AA00"; } else { resultText.setText('FLOPPED! -500 COINS'); resultText.style.fill = "#AA0000"; } // Start with small scale and grow self.scale.set(0.1); tween(self.scale, { x: 1, y: 1 }, { duration: 500, easing: tween.elasticOut }); }; return self; }); var ProgressBar = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('progressBar', { anchorX: 0, anchorY: 0.5 }); var fill = self.attachAsset('progressBarFill', { anchorX: 0, anchorY: 0.5 }); fill.scale.x = 0; self.updateProgress = function (current, target) { var ratio = current / target; ratio = Math.max(0, Math.min(1, ratio)); tween(fill.scale, { x: ratio }, { duration: 500, easing: tween.easeOut }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xE6F7FF }); /**** * Game Code ****/ // Game variables var coins = storage.coins || 2000; var goalCoins = 100000; var memeTexts = ["One does not simply\nbecome a meme millionaire", "Me: *posts a meme*\nInternet: TAKE MY MONEY", "When your meme\ngoes viral", "Wait, you guys are\nmaking money?", "Meme stonks\nGO BRRRRR", "How it started vs\nHow it's going", "Nobody:\nMe: *making memes for virtual money*", "The house I'll buy\nwith meme coins", "Posting memes until\nI can afford a house", "My bank account after\nmaking memes all day"]; var currentMeme = null; var houseOwned = false; // Create the house (dream goal) var house = new House(); house.x = 2048 / 2; house.y = 800; house.scale.set(0.8); game.addChild(house); // Create UI elements var coinText = new Text2("Coins: " + coins.toLocaleString(), { size: 60, fill: 0x000000 }); coinText.anchor.set(0, 0); coinText.x = 50; coinText.y = 50; LK.gui.addChild(coinText); var goalText = new Text2("Goal: " + goalCoins.toLocaleString() + " coins", { size: 40, fill: 0x000000 }); goalText.anchor.set(1, 0); goalText.x = 2048 - 50; goalText.y = 50; LK.gui.addChild(goalText); // Progress bar var progressBar = new ProgressBar(); progressBar.x = 2048 / 2 - 800; progressBar.y = 150; LK.gui.addChild(progressBar); progressBar.updateProgress(coins, goalCoins); // Create the meme posting area var memeContainer = new Container(); memeContainer.x = 2048 / 2; memeContainer.y = 1500; game.addChild(memeContainer); // Create the meme button var makeButton = new Button(); makeButton.x = 2048 / 2; makeButton.y = 2200; game.addChild(makeButton); // Instructions text var instructionsText = new Text2("Tap the button to make memes.\nViral memes earn 1000 coins, flops cost 500 coins.\nReach 100,000 coins to buy your dream house!", { size: 40, fill: 0x000000 }); instructionsText.anchor.set(0.5, 0.5); instructionsText.x = 2048 / 2; instructionsText.y = 2350; game.addChild(instructionsText); // Handle meme creation function createMeme() { // Remove previous meme if exists if (currentMeme) { memeContainer.removeChild(currentMeme); currentMeme.destroy(); } // Create a new meme post currentMeme = new MemePost(); memeContainer.addChild(currentMeme); // Determine if meme goes viral (60% chance of success) var isViral = Math.random() < 0.6; // Get a random meme text var memeText = memeTexts[Math.floor(Math.random() * memeTexts.length)]; // Update coins if (isViral) { coins += 1000; LK.getSound('success').play(); } else { coins -= 500; LK.getSound('fail').play(); } // Ensure coins don't go below 0 coins = Math.max(0, coins); // Save coins to storage storage.coins = coins; // Update display coinText.setText("Coins: " + coins.toLocaleString()); progressBar.updateProgress(coins, goalCoins); // Set meme content currentMeme.setMeme(memeText, isViral); // Check if player has reached the goal checkGoal(); } // Check if player reached the goal function checkGoal() { if (coins >= goalCoins && !houseOwned) { houseOwned = true; // Update best score if needed if (!storage.bestScore || coins > storage.bestScore) { storage.bestScore = coins; } // Animate house celebration tween(house.scale, { x: 1.2, y: 1.2 }, { duration: 800, easing: tween.elasticOut }); // Show winning message var winText = new Text2("CONGRATULATIONS!\nYou bought your dream house!", { size: 80, fill: 0x009900 }); winText.anchor.set(0.5, 0.5); winText.x = 2048 / 2; winText.y = 1100; game.addChild(winText); // Show confetti effect (simplified) LK.effects.flashScreen(0xFFFF00, 500); // Show you win after a delay LK.setTimeout(function () { LK.showYouWin(); }, 2000); } } // Handle button clicks makeButton.down = function (x, y, obj) { tween(makeButton.scale, { x: 0.9, y: 0.9 }, { duration: 100, easing: tween.easeOut }); }; makeButton.up = function (x, y, obj) { tween(makeButton.scale, { x: 1, y: 1 }, { duration: 100, easing: tween.easeOut }); createMeme(); }; // Game update function game.update = function () { // Game logic that runs every frame }; // Start background music LK.playMusic('backgroundMusic'); // Create initial meme to show the player how it works LK.setTimeout(function () { createMeme(); }, 500);
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,284 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+var storage = LK.import("@upit/storage.v1", {
+ coins: 2000,
+ bestScore: 0
+});
+
+/****
+* Classes
+****/
+var Button = Container.expand(function () {
+ var self = Container.call(this);
+ var background = self.attachAsset('makeButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var buttonText = new Text2('MAKE MEME', {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ buttonText.anchor.set(0.5, 0.5);
+ self.addChild(buttonText);
+ self.down = function () {
+ tween(self.scale, {
+ x: 0.9,
+ y: 0.9
+ }, {
+ duration: 100,
+ easing: tween.easeOut
+ });
+ };
+ self.up = function () {
+ tween(self.scale, {
+ x: 1,
+ y: 1
+ }, {
+ duration: 100,
+ easing: tween.easeOut
+ });
+ };
+ return self;
+});
+var House = Container.expand(function () {
+ var self = Container.call(this);
+ var houseBase = self.attachAsset('house', {
+ anchorX: 0.5,
+ anchorY: 1.0
+ });
+ var roof = self.attachAsset('houseRoof', {
+ anchorX: 0.5,
+ anchorY: 1.0,
+ y: -houseBase.height
+ });
+ // Make roof triangular by scaling down the width at top
+ roof.scale.set(1, 1);
+ return self;
+});
+var MemePost = Container.expand(function () {
+ var self = Container.call(this);
+ var memeBackground = self.attachAsset('memeBackground', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var memeText = new Text2('', {
+ size: 36,
+ fill: 0x000000
+ });
+ memeText.anchor.set(0.5, 0.5);
+ self.addChild(memeText);
+ var resultText = new Text2('', {
+ size: 40,
+ fill: 0x000000
+ });
+ resultText.anchor.set(0.5, 0.5);
+ resultText.y = memeBackground.height / 2 + 50;
+ self.addChild(resultText);
+ self.setMeme = function (text, isViral) {
+ memeText.setText(text);
+ if (isViral) {
+ resultText.setText('VIRAL! +1000 COINS');
+ resultText.style.fill = "#00AA00";
+ } else {
+ resultText.setText('FLOPPED! -500 COINS');
+ resultText.style.fill = "#AA0000";
+ }
+ // Start with small scale and grow
+ self.scale.set(0.1);
+ tween(self.scale, {
+ x: 1,
+ y: 1
+ }, {
+ duration: 500,
+ easing: tween.elasticOut
+ });
+ };
+ return self;
+});
+var ProgressBar = Container.expand(function () {
+ var self = Container.call(this);
+ var background = self.attachAsset('progressBar', {
+ anchorX: 0,
+ anchorY: 0.5
+ });
+ var fill = self.attachAsset('progressBarFill', {
+ anchorX: 0,
+ anchorY: 0.5
+ });
+ fill.scale.x = 0;
+ self.updateProgress = function (current, target) {
+ var ratio = current / target;
+ ratio = Math.max(0, Math.min(1, ratio));
+ tween(fill.scale, {
+ x: ratio
+ }, {
+ duration: 500,
+ easing: tween.easeOut
+ });
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0xE6F7FF
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var coins = storage.coins || 2000;
+var goalCoins = 100000;
+var memeTexts = ["One does not simply\nbecome a meme millionaire", "Me: *posts a meme*\nInternet: TAKE MY MONEY", "When your meme\ngoes viral", "Wait, you guys are\nmaking money?", "Meme stonks\nGO BRRRRR", "How it started vs\nHow it's going", "Nobody:\nMe: *making memes for virtual money*", "The house I'll buy\nwith meme coins", "Posting memes until\nI can afford a house", "My bank account after\nmaking memes all day"];
+var currentMeme = null;
+var houseOwned = false;
+// Create the house (dream goal)
+var house = new House();
+house.x = 2048 / 2;
+house.y = 800;
+house.scale.set(0.8);
+game.addChild(house);
+// Create UI elements
+var coinText = new Text2("Coins: " + coins.toLocaleString(), {
+ size: 60,
+ fill: 0x000000
+});
+coinText.anchor.set(0, 0);
+coinText.x = 50;
+coinText.y = 50;
+LK.gui.addChild(coinText);
+var goalText = new Text2("Goal: " + goalCoins.toLocaleString() + " coins", {
+ size: 40,
+ fill: 0x000000
+});
+goalText.anchor.set(1, 0);
+goalText.x = 2048 - 50;
+goalText.y = 50;
+LK.gui.addChild(goalText);
+// Progress bar
+var progressBar = new ProgressBar();
+progressBar.x = 2048 / 2 - 800;
+progressBar.y = 150;
+LK.gui.addChild(progressBar);
+progressBar.updateProgress(coins, goalCoins);
+// Create the meme posting area
+var memeContainer = new Container();
+memeContainer.x = 2048 / 2;
+memeContainer.y = 1500;
+game.addChild(memeContainer);
+// Create the meme button
+var makeButton = new Button();
+makeButton.x = 2048 / 2;
+makeButton.y = 2200;
+game.addChild(makeButton);
+// Instructions text
+var instructionsText = new Text2("Tap the button to make memes.\nViral memes earn 1000 coins, flops cost 500 coins.\nReach 100,000 coins to buy your dream house!", {
+ size: 40,
+ fill: 0x000000
+});
+instructionsText.anchor.set(0.5, 0.5);
+instructionsText.x = 2048 / 2;
+instructionsText.y = 2350;
+game.addChild(instructionsText);
+// Handle meme creation
+function createMeme() {
+ // Remove previous meme if exists
+ if (currentMeme) {
+ memeContainer.removeChild(currentMeme);
+ currentMeme.destroy();
+ }
+ // Create a new meme post
+ currentMeme = new MemePost();
+ memeContainer.addChild(currentMeme);
+ // Determine if meme goes viral (60% chance of success)
+ var isViral = Math.random() < 0.6;
+ // Get a random meme text
+ var memeText = memeTexts[Math.floor(Math.random() * memeTexts.length)];
+ // Update coins
+ if (isViral) {
+ coins += 1000;
+ LK.getSound('success').play();
+ } else {
+ coins -= 500;
+ LK.getSound('fail').play();
+ }
+ // Ensure coins don't go below 0
+ coins = Math.max(0, coins);
+ // Save coins to storage
+ storage.coins = coins;
+ // Update display
+ coinText.setText("Coins: " + coins.toLocaleString());
+ progressBar.updateProgress(coins, goalCoins);
+ // Set meme content
+ currentMeme.setMeme(memeText, isViral);
+ // Check if player has reached the goal
+ checkGoal();
+}
+// Check if player reached the goal
+function checkGoal() {
+ if (coins >= goalCoins && !houseOwned) {
+ houseOwned = true;
+ // Update best score if needed
+ if (!storage.bestScore || coins > storage.bestScore) {
+ storage.bestScore = coins;
+ }
+ // Animate house celebration
+ tween(house.scale, {
+ x: 1.2,
+ y: 1.2
+ }, {
+ duration: 800,
+ easing: tween.elasticOut
+ });
+ // Show winning message
+ var winText = new Text2("CONGRATULATIONS!\nYou bought your dream house!", {
+ size: 80,
+ fill: 0x009900
+ });
+ winText.anchor.set(0.5, 0.5);
+ winText.x = 2048 / 2;
+ winText.y = 1100;
+ game.addChild(winText);
+ // Show confetti effect (simplified)
+ LK.effects.flashScreen(0xFFFF00, 500);
+ // Show you win after a delay
+ LK.setTimeout(function () {
+ LK.showYouWin();
+ }, 2000);
+ }
+}
+// Handle button clicks
+makeButton.down = function (x, y, obj) {
+ tween(makeButton.scale, {
+ x: 0.9,
+ y: 0.9
+ }, {
+ duration: 100,
+ easing: tween.easeOut
+ });
+};
+makeButton.up = function (x, y, obj) {
+ tween(makeButton.scale, {
+ x: 1,
+ y: 1
+ }, {
+ duration: 100,
+ easing: tween.easeOut
+ });
+ createMeme();
+};
+// Game update function
+game.update = function () {
+ // Game logic that runs every frame
+};
+// Start background music
+LK.playMusic('backgroundMusic');
+// Create initial meme to show the player how it works
+LK.setTimeout(function () {
+ createMeme();
+}, 500);
\ No newline at end of file
the chicken jockey meme. In-Game asset. 2d. High contrast. No shadows
tung tung tung shaur meme. In-Game asset. 2d. High contrast. No shadows
banana meme. In-Game asset. 2d. High contrast. No shadows
mewing meme. In-Game asset. 2d. High contrast. No shadows
monkey eating a banana with a face meme. In-Game asset. 2d. High contrast. No shadows