User prompt
Make it play the music Music on start and loop it
User prompt
Make the volume of the sizzle and burn 5
User prompt
Make the sounds play like the Burn and the Sizzle
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: leaderboard' in or related to this line: 'leaderboard.submit({' Line Number: 102
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: leaderboard' in or related to this line: 'leaderboard.submit({' Line Number: 102
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: leaderboard' in or related to this line: 'leaderboard.submit({' Line Number: 102
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: leaderboard' in or related to this line: 'leaderboard.submit({' Line Number: 102
User prompt
Add a public online realtime leaderboard with most cooked burger or like the points when you swipe
User prompt
Please fix the bug: 'TypeError: LK.now is not a function. (In 'LK.now()', 'LK.now' is undefined)' in or related to this line: 'if (patties.length === 0 && LK.now() - lastPattyTime > pattySpawnDelay) {' Line Number: 216
Code edit (1 edits merged)
Please save this source code
User prompt
Perfect Patty
Initial prompt
Make a patty cooking game where you have the patty on the stove for 2 seconds and it cooks and then if you wait 3 more seconds it burns and disappears but if it’s cooked you can tap the patty and it will go onto a bun and stop cooking
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Patty class var Patty = Container.expand(function () { var self = Container.call(this); // States: 'raw', 'perfect', 'burnt', 'served' self.state = 'raw'; self.cookTime = 0; // ms since placed on stove self.cooked = false; // true if served self.burnt = false; self.served = false; // Attach raw patty asset self.pattyAsset = self.attachAsset('patty_raw', { anchorX: 0.5, anchorY: 0.5 }); // For animation self.yOffset = 0; // Called every tick self.update = function () { if (self.served || self.burnt) return; self.cookTime += 1000 / 60; // ~16.67ms per tick // Change state at 2s (perfect), 5s (burnt) if (self.cookTime >= 2000 && self.state === 'raw') { self.state = 'perfect'; self.pattyAsset.destroy(); self.pattyAsset = self.attachAsset('patty_perfect', { anchorX: 0.5, anchorY: 0.5 }); // Play ding sound LK.getSound('ding').play(); } if (self.cookTime >= 5000 && !self.burnt && !self.served) { self.state = 'burnt'; self.burnt = true; self.pattyAsset.destroy(); self.pattyAsset = self.attachAsset('patty_burnt', { anchorX: 0.5, anchorY: 0.5 }); // Play burn sound LK.getSound('burn').play(); // Animate fade out and destroy after 0.7s tween(self, { alpha: 0 }, { duration: 700, onFinish: function onFinish() { self.destroy(); } }); } }; // Called when tapped self.down = function (x, y, obj) { if (self.served || self.burnt) return; if (self.state === 'perfect') { self.serve(); } }; // Serve patty to bun self.serve = function () { self.served = true; // Move patty to bun position (animated) var targetX = bun.x; var targetY = bun.y - 30; tween(self, { x: targetX, y: targetY }, { duration: 350, easing: tween.cubicOut, onFinish: function onFinish() { // Add score LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); // Submit score to leaderboard leaderboard.submit({ leaderboardId: 'perfect_patties', score: LK.getScore(), extra: { cooked: LK.getScore() } }); // Animate patty into bun (scale down) tween(self, { scaleX: 0.7, scaleY: 0.7, alpha: 0.0 }, { duration: 400, onFinish: function onFinish() { self.destroy(); } }); } }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xf5f2e6 }); /**** * Game Code ****/ // Centered positions // Patty states: raw, perfect, burnt // Bun // Stove // Plate // Sizzle sound var centerX = 2048 / 2; var stoveY = 1100; var bunY = 1700; var plateY = 1850; // Add stove var stove = LK.getAsset('stove', { anchorX: 0.5, anchorY: 0.5, x: centerX, y: stoveY }); game.addChild(stove); // Add plate var plate = LK.getAsset('plate', { anchorX: 0.5, anchorY: 0.5, x: centerX, y: plateY }); game.addChild(plate); // Add bun var bun = LK.getAsset('bun', { anchorX: 0.5, anchorY: 0.5, x: centerX, y: bunY }); game.addChild(bun); // Score text var scoreTxt = new Text2('0', { size: 140, fill: 0x7C4A00 }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Add leaderboard button to top right, opens leaderboard popup var leaderboardBtn = new Text2('🏆', { size: 120, fill: 0x7C4A00 }); leaderboardBtn.anchor.set(1, 0); leaderboardBtn.x = LK.gui.top.width - 40; leaderboardBtn.y = 0; leaderboardBtn.interactive = true; leaderboardBtn.buttonMode = true; leaderboardBtn.down = function () { leaderboard.show({ leaderboardId: 'perfect_patties', title: "Top Patty Chefs", scoreLabel: "Cooked", highlightScore: LK.getScore() }); }; LK.gui.top.addChild(leaderboardBtn); // Patty management var patties = []; var pattySpawned = false; var pattySpawnDelay = 600; // ms between patties var lastPattyTime = -pattySpawnDelay; // Helper: spawn a new patty on the stove function spawnPatty() { var patty = new Patty(); patty.x = centerX; patty.y = stoveY - 40; patties.push(patty); game.addChild(patty); pattySpawned = true; lastPattyTime = Date.now(); // Sizzle sound LK.getSound('sizzle').play(); } // Remove destroyed patties from array function cleanPatties() { for (var i = patties.length - 1; i >= 0; i--) { if (patties[i].destroyed || patties[i].burnt || patties[i].served) { patties.splice(i, 1); } } } // Game tap handler: pass to patty if tapped game.down = function (x, y, obj) { // Find topmost patty under tap for (var i = patties.length - 1; i >= 0; i--) { var p = patties[i]; if (p.served || p.burnt) continue; // Hit test: simple bounding box var px = p.x, py = p.y; var w = p.pattyAsset.width, h = p.pattyAsset.height; if (x >= px - w / 2 && x <= px + w / 2 && y >= py - h / 2 && y <= py + h / 2) { p.down(x, y, obj); break; } } }; // Main update loop game.update = function () { // Spawn patty if none present and enough time passed if (patties.length === 0 && Date.now() - lastPattyTime > pattySpawnDelay) { spawnPatty(); } // Update patties for (var i = 0; i < patties.length; i++) { if (patties[i].update) patties[i].update(); } // Remove destroyed patties cleanPatties(); }; // Show "You Win" if player reaches 20 perfect patties // (Optional: can be adjusted for difficulty) game.checkWin = function () { if (LK.getScore() >= 20) { LK.showYouWin(); leaderboard.show({ leaderboardId: 'perfect_patties', title: "Top Patty Chefs", scoreLabel: "Cooked", highlightScore: LK.getScore() }); } }; // Add win check to score update var oldSetScore = LK.setScore; LK.setScore = function (val) { oldSetScore(val); game.checkWin(); };
===================================================================
--- original.js
+++ change.js
@@ -80,8 +80,16 @@
onFinish: function onFinish() {
// Add score
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
+ // Submit score to leaderboard
+ leaderboard.submit({
+ leaderboardId: 'perfect_patties',
+ score: LK.getScore(),
+ extra: {
+ cooked: LK.getScore()
+ }
+ });
// Animate patty into bun (scale down)
tween(self, {
scaleX: 0.7,
scaleY: 0.7,
@@ -148,8 +156,27 @@
fill: 0x7C4A00
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
+// Add leaderboard button to top right, opens leaderboard popup
+var leaderboardBtn = new Text2('🏆', {
+ size: 120,
+ fill: 0x7C4A00
+});
+leaderboardBtn.anchor.set(1, 0);
+leaderboardBtn.x = LK.gui.top.width - 40;
+leaderboardBtn.y = 0;
+leaderboardBtn.interactive = true;
+leaderboardBtn.buttonMode = true;
+leaderboardBtn.down = function () {
+ leaderboard.show({
+ leaderboardId: 'perfect_patties',
+ title: "Top Patty Chefs",
+ scoreLabel: "Cooked",
+ highlightScore: LK.getScore()
+ });
+};
+LK.gui.top.addChild(leaderboardBtn);
// Patty management
var patties = [];
var pattySpawned = false;
var pattySpawnDelay = 600; // ms between patties
@@ -208,8 +235,14 @@
// (Optional: can be adjusted for difficulty)
game.checkWin = function () {
if (LK.getScore() >= 20) {
LK.showYouWin();
+ leaderboard.show({
+ leaderboardId: 'perfect_patties',
+ title: "Top Patty Chefs",
+ scoreLabel: "Cooked",
+ highlightScore: LK.getScore()
+ });
}
};
// Add win check to score update
var oldSetScore = LK.setScore;