User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'easeOut')' in or related to this line: 'tween(self, {' Line Number: 59 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
We can choose the correct answer also or wrong answer when the wrong answer was left the life were lost.
User prompt
remove music from the game completely
User prompt
take music from assets and play it as game background music
User prompt
play background music with game
User prompt
Please fix the bug: 'can't access property "stars", storage is undefined' in or related to this line: 'var stars = storage.stars || 0;' Line Number: 160
User prompt
Compilation error[L36]: Plugins failed to load. fix this error
User prompt
Compilation error[L36]: Plugins failed to load. fix problem
User prompt
Compilation error[L36]: Plugins failed to load. fix problem
User prompt
add pepsi logo and its assets
User prompt
add background music and its assets. Do play the background music with game.
User prompt
rest the music assets
User prompt
add background music and its assets. Do play with game.
User prompt
remve assest also of music
User prompt
remove the background music.
User prompt
pls fix the music canot play
User prompt
when start the game than start backgroud music
User prompt
add spotify logo and its assets
User prompt
the background music cannot play when we start the game
User prompt
the background music cannot play when we start the game
User prompt
start backgroud music with start the game
User prompt
when game start then background music play with game
User prompt
add youtube music logo and its assets
User prompt
the answer in free fire max is free fire max
User prompt
do add free fire max logo option in free fire also
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var OptionButton = Container.expand(function (text, isCorrect, index) { var self = Container.call(this); self.isCorrect = isCorrect; self.isSelected = false; self.buttonIndex = index; var buttonBg = self.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5 }); var buttonText = new Text2(text, { size: 48, fill: 0x000000 }); buttonText.anchor.set(0.5, 0.5); self.addChild(buttonText); self.setText = function (newText) { buttonText.setText(newText); }; self.showCorrect = function () { buttonBg.destroy(); buttonBg = self.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(buttonBg, 0); tween(self, { scaleX: 1.1, scaleY: 1.1 }, { duration: 200, easing: tween.easeOut }); tween(self, { scaleX: 1.0, scaleY: 1.0 }, { duration: 200, easing: tween.easeOut }); }; self.showWrong = function () { buttonBg.destroy(); buttonBg = self.attachAsset('optionButtonWrong', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(buttonBg, 0); tween(self, { x: self.x + 10 }, { duration: 50 }); tween(self, { x: self.x - 10 }, { duration: 50 }); tween(self, { x: self.x }, { duration: 50 }); }; self.reset = function () { self.isSelected = false; buttonBg.destroy(); buttonBg = self.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(buttonBg, 0); self.scaleX = 1.0; self.scaleY = 1.0; }; self.down = function (x, y, obj) { if (gameState !== 'playing') return; if (self.isCorrect) { self.showCorrect(); handleCorrectAnswer(); } else { self.showWrong(); handleWrongAnswer(); } }; return self; }); var StarDisplay = Container.expand(function () { var self = Container.call(this); var starBg = self.attachAsset('starIcon', { anchorX: 0.5, anchorY: 0.5 }); var starText = new Text2('0', { size: 72, fill: 0x000000 }); starText.anchor.set(0.5, 0.5); self.addChild(starText); self.updateStars = function (count) { starText.setText(count.toString()); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xFFF8E1 }); /**** * Game Code ****/ // Brand Logo Assets // Game state variables var gameState = 'playing'; var currentLevel = 1; var currentQuestion = 0; var score = 0; var stars = storage.stars || 0; var highScore = storage.highScore || 0; // New leaderboard entry structure - load from flat arrays var leaderboard = []; var playerPasswords = storage.playerPasswords || {}; // Store passwords as object with name as key if (storage.leaderboardNames && storage.leaderboardNames.length > 0 && storage.leaderboardScores && storage.leaderboardStars && storage.leaderboardDates) { for (var i = 0; i < storage.leaderboardNames.length; i++) { leaderboard.push({ name: storage.leaderboardNames[i], score: storage.leaderboardScores[i], stars: storage.leaderboardStars[i], date: storage.leaderboardDates[i] }); } ; // Play background music LK.playMusic('backgroundMusic'); } var usedQuestions = []; var lives = 3; // Initialize player lives var playerName = storage.playerName || ''; // Store player name - empty string for new players // Logo database var logoDatabase = [ // Level 1 - Indian Brands { name: 'टाटा', options: ['टाटा', 'रिलायंस', 'अडानी', 'बिड़ला'], correct: 0, fact: 'टाटा ग्रुप की स्थापना 1868 में जमशेदजी टाटा ने की थी।', level: 1, logoColor: 0x0066CC, logoAssetId: 'tataLogo' }, { name: 'रिलायंस', options: ['टाटा', 'रिलायंस', 'अडानी', 'बिड़ला'], correct: 1, fact: 'रिलायंस इंडस्ट्रीज भारत की सबसे बड़ी निजी कंपनी है।', level: 1, logoColor: 0xFF0000, logoAssetId: 'relianceLogo' }, { name: 'बजाज', options: ['हीरो', 'बजाज', 'टीवीएस', 'महिंद्रा'], correct: 1, fact: 'बजाज ऑटो भारत की प्रमुख मोटरसाइकिल निर्माता कंपनी है।', level: 1, logoColor: 0x0066FF, logoAssetId: 'bajajLogo' }, // Level 2 - International Brands { name: 'मैकडॉनल्ड्स', options: ['केएफसी', 'मैकडॉनल्ड्स', 'बर्गर किंग', 'सबवे'], correct: 1, fact: 'मैकडॉनल्ड्स दुनिया की सबसे बड़ी फास्ट फूड चेन है।', level: 2, logoColor: 0xFFD700, logoAssetId: 'mcdonaldsLogo' }, { name: 'गूगल', options: ['माइक्रोसॉफ्ट', 'गूगल', 'एप्पल', 'अमेज़न'], correct: 1, fact: 'गूगल दुनिया का सबसे बड़ा सर्च इंजन है।', level: 2, logoColor: 0x4285f4, logoAssetId: 'googleLogo' }, { name: 'अमेज़न', options: ['ईबे', 'अमेज़न', 'अलीबाबा', 'शॉपिफाई'], correct: 1, fact: 'अमेज़न दुनिया की सबसे बड़ी ई-कॉमर्स कंपनी है।', level: 2, logoColor: 0xFF9900, logoAssetId: 'amazonLogo' }, { name: 'फ्लिपकार्ट', options: ['अमेज़न', 'फ्लिपकार्ट', 'स्नैपडील', 'मिंत्रा'], correct: 1, fact: 'फ्लिपकार्ट भारत की सबसे बड़ी ई-कॉमर्स कंपनी है।', level: 1, logoColor: 0xF7971E, logoAssetId: 'flipkartLogo' }, { name: 'ज़ोमैटो', options: ['स्विगी', 'ज़ोमैटो', 'उबर ईट्स', 'फूडपांडा'], correct: 1, fact: 'ज़ोमैटो भारत की प्रमुख फूड डिलीवरी कंपनी है।', level: 1, logoColor: 0xE23744, logoAssetId: 'zomatoLogo' }, { name: 'ओला', options: ['उबर', 'ओला', 'मेरु', 'लिफ्ट'], correct: 1, fact: 'ओला भारत की सबसे बड़ी राइड-शेयरिंग कंपनी है।', level: 1, logoColor: 0x000000, logoAssetId: 'olaLogo' }, { name: 'पेटीएम', options: ['गूगल पे', 'पेटीएम', 'फोनपे', 'भीम'], correct: 1, fact: 'पेटीएम भारत की सबसे बड़ी डिजिटल पेमेंट कंपनी है।', level: 1, logoColor: 0x00BAF2, logoAssetId: 'paytmLogo' }, { name: 'एयरटेल', options: ['जियो', 'एयरटेल', 'वोडाफोन', 'आइडिया'], correct: 1, fact: 'भारती एयरटेल भारत की दूसरी सबसे बड़ी टेलीकॉम कंपनी है।', level: 1, logoColor: 0xFF0000, logoAssetId: 'airtelLogo' }, { name: 'बायजूस', options: ['अनएकेडमी', 'बायजूस', 'वेदांतु', 'व्हाइट हैट जूनियर'], correct: 1, fact: 'बायजूस भारत की सबसे बड़ी ऑनलाइन शिक्षा कंपनी है।', level: 2, logoColor: 0x6C63FF, logoAssetId: 'byjusLogo' }, { name: 'पतंजलि', options: ['हिमालया', 'पतंजलि', 'डाबर', 'झंडू'], correct: 1, fact: 'पतंजलि आयुर्वेद भारत की प्रमुख आयुर्वेदिक उत्पाद कंपनी है।', level: 1, logoColor: 0x00A86B, logoAssetId: 'patanjaliLogo' }, { name: 'माइनक्राफ्ट', options: ['रोब्लॉक्स', 'माइनक्राफ्ट', 'फोर्टनाइट', 'वैलोरेंट'], correct: 1, fact: 'माइनक्राफ्ट दुनिया का सबसे लोकप्रिय गेम है।', level: 2, logoColor: 0x00AA00, logoAssetId: 'minecraftLogo' }, { name: 'फ्री फायर', options: ['पबजी', 'फ्री फायर', 'फ्री फायर मैक्स', 'कॉल ऑफ ड्यूटी'], correct: 2, fact: 'फ्री फायर और फ्री फायर मैक्स दोनों लोकप्रिय बैटल रॉयल गेम हैं।', level: 2, logoColor: 0xFF4500, logoAssetId: 'freeFireMaxLogo' }, { name: 'यूट्यूब म्यूजिक', options: ['स्पॉटिफाई', 'यूट्यूब म्यूजिक', 'गाना', 'जियो सावन'], correct: 1, fact: 'यूट्यूब म्यूजिक गूगल की संगीत स्ट्रीमिंग सेवा है।', level: 2, logoColor: 0xFF0000, logoAssetId: 'youtubeMusicLogo' }, { name: 'स्पॉटिफाई', options: ['यूट्यूब म्यूजिक', 'स्पॉटिफाई', 'गाना', 'एप्पल म्यूजिक'], correct: 1, fact: 'स्पॉटिफाई दुनिया की सबसे बड़ी संगीत स्ट्रीमिंग सेवा है।', level: 2, logoColor: 0x1DB954, logoAssetId: 'spotifyLogo' }, { name: 'पेप्सी', options: ['कोका-कोला', 'पेप्सी', 'थम्स अप', 'स्प्राइट'], correct: 1, fact: 'पेप्सी दुनिया की दूसरी सबसे बड़ी कोला ब्रांड है।', level: 2, logoColor: 0x004B93, logoAssetId: 'pepsiLogo' }]; // UI Elements var logoContainer; var logoDisplay; var optionButtons = []; var starDisplay; var scoreText; var levelText; var questionText; var factText; // Background var background = game.attachAsset('backgroundPattern', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); // Logo container logoContainer = game.attachAsset('logoContainer', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 400 }); // Logo display will be created dynamically in loadQuestion() logoDisplay = null; // Score display scoreText = new Text2('स्कोर: ' + score, { size: 48, fill: 0xFF6B6B }); scoreText.anchor.set(0.5, 0); scoreText.x = 2048 / 2; scoreText.y = 50; game.addChild(scoreText); // Fullscreen leaderboard overlay var leaderboardOverlay = new Container(); leaderboardOverlay.visible = false; // Start hidden game.addChild(leaderboardOverlay); // Reload overlay var reloadOverlay = new Container(); reloadOverlay.visible = false; game.addChild(reloadOverlay); // Semi-transparent background for reload overlay var reloadBg = LK.getAsset('optionButton', { anchorX: 0, anchorY: 0, scaleX: 20.48, scaleY: 27.32, x: 0, y: 0 }); reloadBg.alpha = 0.95; reloadBg.tint = 0x1a1a1a; reloadOverlay.addChild(reloadBg); // Reload container var reloadContainer = new Container(); reloadContainer.x = 2048 / 2; reloadContainer.y = 1366 / 2; reloadOverlay.addChild(reloadContainer); var reloadTitle = new Text2('डेटा रीलोड करें', { size: 72, fill: 0xFFD700 }); reloadTitle.anchor.set(0.5, 0.5); reloadTitle.y = -300; reloadContainer.addChild(reloadTitle); // Password input var passwordInputBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 3, scaleY: 1 }); passwordInputBg.y = -150; reloadContainer.addChild(passwordInputBg); var passwordInputText = new Text2('पासवर्ड दर्ज करें', { size: 42, fill: 0x666666 }); passwordInputText.anchor.set(0.5, 0.5); passwordInputText.y = -150; reloadContainer.addChild(passwordInputText); // Name input for reload var nameInputReloadBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 3, scaleY: 1 }); nameInputReloadBg.y = -50; reloadContainer.addChild(nameInputReloadBg); var nameInputReloadText = new Text2('नाम दर्ज करें', { size: 42, fill: 0x666666 }); nameInputReloadText.anchor.set(0.5, 0.5); nameInputReloadText.y = -50; reloadContainer.addChild(nameInputReloadText); // Reload confirm button var reloadConfirmBtn = new Container(); reloadConfirmBtn.y = 50; var reloadConfirmBg = reloadConfirmBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1 }); reloadConfirmBg.tint = 0x4CAF50; var reloadConfirmText = new Text2('रीलोड करें', { size: 42, fill: 0xFFFFFF }); reloadConfirmText.anchor.set(0.5, 0.5); reloadConfirmBtn.addChild(reloadConfirmText); reloadContainer.addChild(reloadConfirmBtn); // Reload cancel button var reloadCancelBtn = new Container(); reloadCancelBtn.y = 150; var reloadCancelBg = reloadCancelBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1 }); reloadCancelBg.tint = 0xf44336; var reloadCancelText = new Text2('रद्द करें', { size: 42, fill: 0xFFFFFF }); reloadCancelText.anchor.set(0.5, 0.5); reloadCancelBtn.addChild(reloadCancelText); reloadContainer.addChild(reloadCancelBtn); // Reload state variables var reloadPassword = ''; var reloadName = ''; var isPasswordInput = false; var isNameInput = false; var reloadKeyboardVisible = false; // Semi-transparent background var leaderboardBg = LK.getAsset('optionButton', { anchorX: 0, anchorY: 0, scaleX: 20.48, scaleY: 27.32, x: 0, y: 0 }); leaderboardBg.alpha = 0.95; leaderboardBg.tint = 0x1a1a1a; leaderboardOverlay.addChild(leaderboardBg); // Leaderboard display container var leaderboardContainer = new Container(); leaderboardContainer.x = 2048 / 2; leaderboardContainer.y = 400; leaderboardOverlay.addChild(leaderboardContainer); var leaderboardTitle = new Text2('🏆 लीडरबोर्ड 🏆', { size: 72, fill: 0xFFD700 }); leaderboardTitle.anchor.set(0.5, 0); leaderboardContainer.addChild(leaderboardTitle); // Create header var headerBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 0.8, y: 100 }); headerBg.tint = 0x2c3e50; leaderboardContainer.addChild(headerBg); var headerText = new Text2('रैंक नाम स्कोर स्टार', { size: 42, fill: 0xFFFFFF }); headerText.anchor.set(0.5, 0.5); headerText.y = 100; leaderboardContainer.addChild(headerText); var leaderboardTexts = []; for (var i = 0; i < 10; i++) { // Entry background var entryBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 0.8, y: 180 + i * 80 }); entryBg.tint = i % 2 === 0 ? 0x34495e : 0x2c3e50; entryBg.alpha = 0.8; leaderboardContainer.addChild(entryBg); var entryText = new Text2('', { size: 38, fill: 0xFFFFFF }); entryText.anchor.set(0.5, 0.5); entryText.y = 180 + i * 80; leaderboardTexts.push(entryText); leaderboardContainer.addChild(entryText); } // Close button var closeBtn = new Container(); closeBtn.x = 0; closeBtn.y = 1100; var closeBtnBg = closeBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1 }); closeBtnBg.tint = 0xe74c3c; var closeBtnText = new Text2('बंद करें', { size: 42, fill: 0xFFFFFF }); closeBtnText.anchor.set(0.5, 0.5); closeBtn.addChild(closeBtnText); leaderboardContainer.addChild(closeBtn); closeBtn.down = function () { leaderboardOverlay.visible = false; // Show game elements again if (logoDisplay) logoDisplay.visible = true; questionText.visible = true; for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].visible = true; } factText.visible = true; feedbackText.visible = true; }; function updateLeaderboardDisplay() { for (var i = 0; i < 10; i++) { if (i < leaderboard.length) { var rank = i + 1; var medal = ''; if (rank === 1) medal = '🥇';else if (rank === 2) medal = '🥈';else if (rank === 3) medal = '🥉';else medal = rank + '.'; var entry = leaderboard[i]; leaderboardTexts[i].setText(medal + ' ' + entry.name + ' ' + entry.score + ' ' + entry.stars + '⭐'); } else { leaderboardTexts[i].setText(''); } } } updateLeaderboardDisplay(); // Add leaderboard toggle button var leaderboardBtn = new Container(); leaderboardBtn.x = 2048 - 300; leaderboardBtn.y = 180; var leaderboardBtnBg = leaderboardBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.1, scaleY: 1 }); var leaderboardBtnText = new Text2('लीडरबोर्ड देखें', { size: 36, fill: 0x000000 }); leaderboardBtnText.anchor.set(0.5, 0.5); leaderboardBtn.addChild(leaderboardBtnText); game.addChild(leaderboardBtn); // Add reset button var resetBtn = new Container(); resetBtn.x = 300; resetBtn.y = 180; var resetBtnBg = resetBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.1, scaleY: 1 }); resetBtnBg.tint = 0xFF5722; var resetBtnText = new Text2('रीसेट करें', { size: 36, fill: 0xFFFFFF }); resetBtnText.anchor.set(0.5, 0.5); resetBtn.addChild(resetBtnText); game.addChild(resetBtn); // Add reload button var reloadBtn = new Container(); reloadBtn.x = 300; reloadBtn.y = 280; var reloadBtnBg = reloadBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.1, scaleY: 1 }); reloadBtnBg.tint = 0x2196F3; var reloadBtnText = new Text2('रीलोड करें', { size: 36, fill: 0xFFFFFF }); reloadBtnText.anchor.set(0.5, 0.5); reloadBtn.addChild(reloadBtnText); game.addChild(reloadBtn); leaderboardBtn.down = function () { leaderboardOverlay.visible = true; updateLeaderboardDisplay(); // Hide game elements if (logoDisplay) logoDisplay.visible = false; questionText.visible = false; for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].visible = false; } factText.visible = false; feedbackText.visible = false; }; // Reset game function function resetGame() { // Reset game state variables gameState = 'playing'; currentLevel = 1; currentQuestion = 0; score = 0; stars = 0; lives = 3; usedQuestions = []; playerName = ''; playerPassword = ''; isSettingPassword = false; // Reset storage (except leaderboard data) storage.stars = 0; storage.playerName = ''; storage.playerPassword = ''; // Do not reset leaderboard data - keep it preserved // storage.highScore = 0; // storage.leaderboardNames = []; // storage.leaderboardScores = []; // storage.leaderboardStars = []; // storage.leaderboardDates = []; // Do not reset leaderboard array // leaderboard = []; // Update UI displays scoreText.setText('स्कोर: ' + score); levelText.setText('स्तर: ' + currentLevel); starDisplay.updateStars(stars); livesText.setText('जीवन: ' + lives); factText.setText(''); feedbackText.setText(''); // Update leaderboard display updateLeaderboardDisplay(); // Hide any overlays leaderboardOverlay.visible = false; nameInputContainer.visible = true; // Reset name input nameInputText.setText('टैप करके नाम दर्ज करें'); nameInputText.tint = 0x666666; virtualKeyboard.visible = false; // Remove logo display if exists if (logoDisplay) { logoDisplay.destroy(); logoDisplay = null; } // Reset option buttons for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].reset(); } // Set score to 0 in LK system LK.setScore(0); } // Reset button click handler resetBtn.down = function () { resetGame(); }; // Reload button click handler reloadBtn.down = function () { reloadOverlay.visible = true; reloadPassword = ''; reloadName = ''; isPasswordInput = false; isNameInput = false; passwordInputText.setText('पासवर्ड दर्ज करें'); passwordInputText.tint = 0x666666; nameInputReloadText.setText('नाम दर्ज करें'); nameInputReloadText.tint = 0x666666; // Hide game elements if (logoDisplay) logoDisplay.visible = false; questionText.visible = false; for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].visible = false; } factText.visible = false; feedbackText.visible = false; nameInputContainer.visible = false; }; // Create reload keyboard container (buttons will be created after keyboardChars is defined) var reloadKeyboard = new Container(); reloadKeyboard.y = 250; reloadKeyboard.visible = false; reloadContainer.addChild(reloadKeyboard); var reloadKeyButtons = []; // Create number keyboard for reload overlay var reloadNumberKeyboard = new Container(); reloadNumberKeyboard.y = 250; reloadNumberKeyboard.visible = false; reloadContainer.addChild(reloadNumberKeyboard); // Placeholder for reload number keyboard buttons - will be created after numberChars is defined var reloadNumberKeyButtons = []; // Password input handler passwordInputBg.down = function () { isPasswordInput = true; isNameInput = false; reloadNumberKeyboard.visible = true; reloadKeyboard.visible = false; reloadKeyboardVisible = false; if (passwordInputText.text === 'पासवर्ड दर्ज करें') { reloadPassword = ''; passwordInputText.setText(''); passwordInputText.tint = 0x000000; } }; // Name input handler for reload nameInputReloadBg.down = function () { isNameInput = true; isPasswordInput = false; reloadNumberKeyboard.visible = false; reloadKeyboard.visible = true; reloadKeyboardVisible = true; if (nameInputReloadText.text === 'नाम दर्ज करें') { reloadName = ''; nameInputReloadText.setText(''); nameInputReloadText.tint = 0x000000; } }; // Reload confirm handler reloadConfirmBtn.down = function () { if (reloadName && reloadName.length > 0 && reloadPassword && reloadPassword.length > 0) { // Find player in leaderboard var foundPlayer = null; for (var i = 0; i < leaderboard.length; i++) { if (leaderboard[i].name === reloadName) { foundPlayer = leaderboard[i]; break; } } // Check if player exists in leaderboard if (!foundPlayer) { // Player does not exist in the game feedbackText.setText('यह खिलाड़ी गेम में नहीं है!'); feedbackText.tint = 0xFF0000; feedbackText.visible = true; LK.setTimeout(function () { feedbackText.setText(''); }, 3000); return; } // Check if we have a stored password for this player var storedPassword = playerPasswords[reloadName] || null; // If no stored password found or wrong password if (!storedPassword || storedPassword !== reloadPassword) { // Wrong password or no password stored feedbackText.setText('गलत पासवर्ड या पासवर्ड नहीं मिला!'); feedbackText.tint = 0xFF0000; feedbackText.visible = true; LK.setTimeout(function () { feedbackText.setText(''); }, 3000); return; } // Password matches, restore player data playerName = foundPlayer.name; score = foundPlayer.score; stars = foundPlayer.stars; playerPassword = storedPassword; storage.playerName = playerName; storage.playerPassword = playerPassword; storage.stars = stars; // Update UI scoreText.setText('स्कोर: ' + score); starDisplay.updateStars(stars); LK.setScore(score); // Reset game state gameState = 'playing'; currentLevel = 1; currentQuestion = 0; lives = 3; usedQuestions = []; livesText.setText('जीवन: ' + lives); levelText.setText('स्तर: ' + currentLevel); // Show success message feedbackText.setText('डेटा सफलतापूर्वक रीलोड किया गया!'); feedbackText.tint = 0x4CAF50; feedbackText.visible = true; // Hide reload overlay reloadOverlay.visible = false; reloadKeyboard.visible = false; reloadNumberKeyboard.visible = false; reloadKeyboardVisible = false; nameInputContainer.visible = false; // Show game elements again if (logoDisplay) logoDisplay.visible = true; questionText.visible = true; for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].visible = true; } factText.visible = true; feedbackText.visible = true; loadQuestion(); // Clear success message after 3 seconds LK.setTimeout(function () { feedbackText.setText(''); }, 3000); } else { // Empty name or password feedbackText.setText('कृपया नाम और पासवर्ड दोनों दर्ज करें!'); feedbackText.tint = 0xFF0000; feedbackText.visible = true; LK.setTimeout(function () { feedbackText.setText(''); }, 3000); } }; // Reload cancel handler reloadCancelBtn.down = function () { reloadOverlay.visible = false; reloadNumberKeyboard.visible = false; reloadKeyboard.visible = false; reloadKeyboardVisible = false; // Show game elements again if (logoDisplay) logoDisplay.visible = true; questionText.visible = true; for (var i = 0; i < optionButtons.length; i++) { optionButtons[i].visible = true; } factText.visible = true; feedbackText.visible = true; if (!playerName || playerName === '') { nameInputContainer.visible = true; } }; // Level display levelText = new Text2('स्तर: ' + currentLevel, { size: 42, fill: 0x4ECDC4 }); levelText.anchor.set(0, 0); levelText.x = 150; levelText.y = 50; game.addChild(levelText); // Stars display starDisplay = new StarDisplay(); starDisplay.x = 2048 - 150; starDisplay.y = 80; starDisplay.updateStars(stars); game.addChild(starDisplay); // Lives display var livesText = new Text2('जीवन: ' + lives, { size: 42, fill: 0xFF0000 }); livesText.anchor.set(0.5, 0); livesText.x = 2048 / 2; livesText.y = 120; game.addChild(livesText); // Question text questionText = new Text2('लोगो पहचानें:', { size: 72, fill: 0x000000 }); questionText.anchor.set(0.5, 0); questionText.x = 2048 / 2; questionText.y = 700; game.addChild(questionText); // Create option buttons for (var i = 0; i < 4; i++) { var button = new OptionButton('विकल्प ' + (i + 1), false, i); button.x = 2048 / 2; button.y = 900 + i * 120; optionButtons.push(button); game.addChild(button); } // Fact display text factText = new Text2('', { size: 36, fill: 0x7B68EE }); factText.anchor.set(0.5, 0); factText.x = 2048 / 2; factText.y = 1500; game.addChild(factText); // Name input display var nameInputContainer = new Container(); nameInputContainer.x = 2048 / 2; nameInputContainer.y = 1366; // Center of screen nameInputContainer.visible = false; game.addChild(nameInputContainer); var nameInputBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 3, scaleY: 2 }); nameInputContainer.addChild(nameInputBg); var nameInputTitle = new Text2('अपना नाम दर्ज करें:', { size: 48, fill: 0x000000 }); nameInputTitle.anchor.set(0.5, 0.5); nameInputTitle.y = -60; nameInputContainer.addChild(nameInputTitle); var nameInputText = new Text2(playerName || 'टैप करके नाम दर्ज करें', { size: 42, fill: playerName ? 0x000000 : 0x666666 }); nameInputText.anchor.set(0.5, 0.5); nameInputText.y = -20; nameInputContainer.addChild(nameInputText); // Add password input field for new players var passwordInputFieldBg = LK.getAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 2.5, scaleY: 0.8, y: 40 }); passwordInputFieldBg.tint = 0xE0E0E0; nameInputContainer.addChild(passwordInputFieldBg); var passwordInputFieldText = new Text2('पासवर्ड सेट करें', { size: 36, fill: 0x666666 }); passwordInputFieldText.anchor.set(0.5, 0.5); passwordInputFieldText.y = 40; nameInputContainer.addChild(passwordInputFieldText); // Add password variable for new player registration var playerPassword = ''; var isSettingPassword = false; var nameInputSaveBtn = new Container(); nameInputSaveBtn.y = 120; var saveBtn = nameInputSaveBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.8, scaleY: 0.8 }); var saveBtnText = new Text2('सहेजें', { size: 36, fill: 0x000000 }); saveBtnText.anchor.set(0.5, 0.5); nameInputSaveBtn.addChild(saveBtnText); nameInputContainer.addChild(nameInputSaveBtn); // Virtual keyboard for name input var virtualKeyboard = new Container(); virtualKeyboard.y = 200; virtualKeyboard.visible = false; nameInputContainer.addChild(virtualKeyboard); var keyboardChars = ['अ', 'आ', 'इ', 'ई', 'उ', 'ऊ', 'ए', 'ऐ', 'ओ', 'औ', 'क', 'ख', 'ग', 'घ', 'च', 'छ', 'ज', 'झ', 'ट', 'ठ', 'ड', 'ढ', 'त', 'थ', 'द', 'ध', 'न', 'प', 'फ', 'ब', 'भ', 'म', 'य', 'र', 'ल', 'व', 'श', 'ष', 'स', 'ह', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '⌫']; // Create reload keyboard buttons now that keyboardChars is defined for (var i = 0; i < keyboardChars.length; i++) { var reloadKeyBtn = new Container(); var row = Math.floor(i / 10); var col = i % 10; reloadKeyBtn.x = (col - 4.5) * 80; reloadKeyBtn.y = row * 60; var reloadKeyBg = reloadKeyBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.15, scaleY: 0.6 }); var reloadKeyText = new Text2(keyboardChars[i], { size: 30, fill: 0x000000 }); reloadKeyText.anchor.set(0.5, 0.5); reloadKeyBtn.addChild(reloadKeyText); reloadKeyBtn.charValue = keyboardChars[i]; reloadKeyButtons.push(reloadKeyBtn); reloadKeyboard.addChild(reloadKeyBtn); } // Number keyboard for password input var numberKeyboard = new Container(); numberKeyboard.y = 200; numberKeyboard.visible = false; nameInputContainer.addChild(numberKeyboard); var numberChars = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '⌫']; var numberKeyButtons = []; // Now create reload number keyboard buttons after numberChars is defined for (var i = 0; i < numberChars.length; i++) { var reloadNumKeyBtn = new Container(); var row = Math.floor(i / 4); var col = i % 4; reloadNumKeyBtn.x = (col - 1.5) * 100; reloadNumKeyBtn.y = row * 70; var reloadNumKeyBg = reloadNumKeyBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.2, scaleY: 0.7 }); var reloadNumKeyText = new Text2(numberChars[i], { size: 36, fill: 0x000000 }); reloadNumKeyText.anchor.set(0.5, 0.5); reloadNumKeyBtn.addChild(reloadNumKeyText); reloadNumKeyBtn.charValue = numberChars[i]; reloadNumberKeyButtons.push(reloadNumKeyBtn); reloadNumberKeyboard.addChild(reloadNumKeyBtn); } // Add handlers for reload keyboard buttons for (var i = 0; i < reloadKeyButtons.length; i++) { (function (index) { reloadKeyButtons[index].down = function () { var _char = reloadKeyButtons[index].charValue; if (isNameInput) { if (_char === '⌫') { if (reloadName.length > 0) { reloadName = reloadName.substring(0, reloadName.length - 1); nameInputReloadText.setText(reloadName || 'नाम दर्ज करें'); nameInputReloadText.tint = reloadName ? 0x000000 : 0x666666; } } else if (reloadName.length < 20) { reloadName += _char; nameInputReloadText.setText(reloadName); nameInputReloadText.tint = 0x000000; } } }; })(i); } // Add handlers for reload number keyboard for (var i = 0; i < reloadNumberKeyButtons.length; i++) { (function (index) { reloadNumberKeyButtons[index].down = function () { var _char = reloadNumberKeyButtons[index].charValue; if (isPasswordInput) { if (_char === '⌫') { if (reloadPassword.length > 0) { reloadPassword = reloadPassword.substring(0, reloadPassword.length - 1); passwordInputText.setText(reloadPassword || 'पासवर्ड दर्ज करें'); passwordInputText.tint = reloadPassword ? 0x000000 : 0x666666; } } else if (reloadPassword.length < 20) { reloadPassword += _char; passwordInputText.setText(reloadPassword); passwordInputText.tint = 0x000000; } } }; })(i); } var keyButtons = []; for (var i = 0; i < keyboardChars.length; i++) { var keyBtn = new Container(); var row = Math.floor(i / 10); var col = i % 10; keyBtn.x = (col - 4.5) * 80; keyBtn.y = row * 60; var keyBg = keyBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.15, scaleY: 0.6 }); var keyText = new Text2(keyboardChars[i], { size: 30, fill: 0x000000 }); keyText.anchor.set(0.5, 0.5); keyBtn.addChild(keyText); keyBtn.charValue = keyboardChars[i]; keyButtons.push(keyBtn); virtualKeyboard.addChild(keyBtn); } // Create number keyboard buttons for (var i = 0; i < numberChars.length; i++) { var numKeyBtn = new Container(); var row = Math.floor(i / 4); var col = i % 4; numKeyBtn.x = (col - 1.5) * 100; numKeyBtn.y = row * 70; var numKeyBg = numKeyBtn.attachAsset('optionButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.2, scaleY: 0.7 }); var numKeyText = new Text2(numberChars[i], { size: 36, fill: 0x000000 }); numKeyText.anchor.set(0.5, 0.5); numKeyBtn.addChild(numKeyText); numKeyBtn.charValue = numberChars[i]; numberKeyButtons.push(numKeyBtn); numberKeyboard.addChild(numKeyBtn); } // Feedback text var feedbackText = new Text2('', { size: 60, fill: 0x00D300 }); feedbackText.anchor.set(0.5, 0.5); feedbackText.x = 2048 / 2; feedbackText.y = 1700; game.addChild(feedbackText); // Utility function to shuffle array function shuffleArray(array) { var shuffled = array.slice(); // Create a copy for (var i = shuffled.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = shuffled[i]; shuffled[i] = shuffled[j]; shuffled[j] = temp; } return shuffled; } // Game functions function loadQuestion() { if (usedQuestions.length >= logoDatabase.length) { // Game completed showGameComplete(); return; } // Get available questions (not used yet) var availableQuestions = []; for (var i = 0; i < logoDatabase.length; i++) { if (usedQuestions.indexOf(i) === -1) { availableQuestions.push(i); } } // Select random question from available ones var randomIndex = Math.floor(Math.random() * availableQuestions.length); currentQuestion = availableQuestions[randomIndex]; usedQuestions.push(currentQuestion); var question = logoDatabase[currentQuestion]; // Remove old logo display if (logoDisplay) { logoDisplay.destroy(); } // Create new logo display with actual brand logo logoDisplay = LK.getAsset(question.logoAssetId, { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 400 }); game.addChild(logoDisplay); // Update question text questionText.setText('यह कौन सा लोगो है?'); questionText.tint = 0x000000; questionText.y = 700; // Shuffle options while keeping track of correct answer var originalOptions = question.options.slice(); // Create copy var correctAnswer = originalOptions[question.correct]; var shuffledOptions = shuffleArray(originalOptions); var newCorrectIndex = shuffledOptions.indexOf(correctAnswer); // Update option buttons for (var i = 0; i < 4; i++) { optionButtons[i].setText(shuffledOptions[i]); optionButtons[i].isCorrect = i === newCorrectIndex; optionButtons[i].reset(); } // Clear fact text factText.setText(''); feedbackText.setText(''); // Update level if needed if (question.level !== currentLevel) { currentLevel = question.level; levelText.setText('स्तर: ' + currentLevel); } gameState = 'playing'; } function handleCorrectAnswer() { gameState = 'answered'; // Play correct sound LK.getSound('correctSound').play(); // Update score score += 10; LK.setScore(score); scoreText.setText('स्कोर: ' + score); // Award stars stars += 1; storage.stars = stars; starDisplay.updateStars(stars); // Show feedback var praises = ['सही जवाब!', 'बहुत बढ़िया!', 'शाबाश!', 'उत्कृष्ट!']; var randomPraise = praises[Math.floor(Math.random() * praises.length)]; feedbackText.setText(randomPraise); feedbackText.tint = 0x4CAF50; // Show fact var question = logoDatabase[currentQuestion]; factText.setText(question.fact); // Create confetti effect createConfetti(); // Move to next question after delay LK.setTimeout(function () { loadQuestion(); }, 3000); } function updateLeaderboardWithScore(finalScore) { if (!playerName || playerName === '') return; // Always add new entry without checking for existing players var newEntry = { name: playerName, score: finalScore, stars: stars, date: Date.now() }; leaderboard.push(newEntry); // Sort by score (highest first) leaderboard.sort(function (a, b) { return b.score - a.score; }); // Keep only top 10 entries if (leaderboard.length > 10) { leaderboard = leaderboard.slice(0, 10); } // Update high score if (leaderboard.length > 0) { highScore = leaderboard[0].score; storage.highScore = highScore; } // Save leaderboard using separate arrays for each property storage.leaderboardNames = []; storage.leaderboardScores = []; storage.leaderboardStars = []; storage.leaderboardDates = []; for (var i = 0; i < leaderboard.length; i++) { storage.leaderboardNames[i] = leaderboard[i].name; storage.leaderboardScores[i] = leaderboard[i].score; storage.leaderboardStars[i] = leaderboard[i].stars; storage.leaderboardDates[i] = leaderboard[i].date; } // Update display updateLeaderboardDisplay(); } function handleWrongAnswer() { // Play wrong sound LK.getSound('wrongSound').play(); // Show feedback feedbackText.setText('फिर से कोशिश करें!'); feedbackText.tint = 0xf44336; // Decrease life lives -= 1; livesText.setText('जीवन: ' + lives); // Check for game over if (lives <= 0) { gameState = 'gameover'; // Update leaderboard before showing game over updateLeaderboardWithScore(score); LK.showGameOver(); return; } // Clear feedback after delay LK.setTimeout(function () { feedbackText.setText(''); }, 1500); } function createConfetti() { // Simple confetti effect using colored rectangles for (var i = 0; i < 10; i++) { var confetti = LK.getAsset('starIcon', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + (Math.random() - 0.5) * 400, y: 400, scaleX: 0.3, scaleY: 0.3 }); var colors = [0xFF6B6B, 0x4ECDC4, 0x45B7D1, 0xFFA07A, 0x98D8C8]; confetti.tint = colors[Math.floor(Math.random() * colors.length)]; game.addChild(confetti); // Animate confetti tween(confetti, { y: 800 + Math.random() * 200, x: confetti.x + (Math.random() - 0.5) * 300, rotation: Math.random() * Math.PI * 2, alpha: 0 }, { duration: 1500, easing: tween.easeOut, onFinish: function onFinish() { confetti.destroy(); } }); } } function showGameComplete() { gameState = 'complete'; // Update leaderboard with final score updateLeaderboardWithScore(score); // Show completion message var completionText = new Text2('बधाई हो! आपने सभी लोगो पहचान लिए!', { size: 56, fill: 0x00C853 }); completionText.anchor.set(0.5, 0.5); completionText.x = 2048 / 2; completionText.y = 1200; game.addChild(completionText); // Show final score var finalScoreText = new Text2('अंतिम स्कोर: ' + score, { size: 48, fill: 0xFF1744 }); finalScoreText.anchor.set(0.5, 0.5); finalScoreText.x = 2048 / 2; finalScoreText.y = 1300; game.addChild(finalScoreText); // Reset lives lives = 3; livesText.setText('जीवन: ' + lives); // Show you win after delay LK.setTimeout(function () { LK.showYouWin(); }, 2000); } // Name input handlers nameInputBg.down = function () { virtualKeyboard.visible = true; numberKeyboard.visible = false; isSettingPassword = false; if (nameInputText.text === 'टैप करके नाम दर्ज करें') { playerName = ''; nameInputText.setText(''); nameInputText.tint = 0x000000; } }; // Password field click handler passwordInputFieldBg.down = function () { virtualKeyboard.visible = false; numberKeyboard.visible = true; isSettingPassword = true; if (passwordInputFieldText.text === 'पासवर्ड सेट करें') { playerPassword = ''; passwordInputFieldText.setText(''); passwordInputFieldText.tint = 0x000000; } }; nameInputSaveBtn.down = function () { if (playerName && playerName.length > 0 && playerPassword && playerPassword.length > 0) { // Check if name already exists in leaderboard var nameExists = false; for (var i = 0; i < leaderboard.length; i++) { if (leaderboard[i].name === playerName) { nameExists = true; break; } } if (nameExists) { // Show error message for duplicate name feedbackText.setText('यह नाम पहले से मौजूद है! कृपया दूसरा नाम चुनें।'); feedbackText.tint = 0xFF0000; feedbackText.visible = true; // Clear error message after 3 seconds LK.setTimeout(function () { feedbackText.setText(''); }, 3000); return; } storage.playerName = playerName; storage.playerPassword = playerPassword; // Save password // Also save password in playerPasswords object playerPasswords[playerName] = playerPassword; storage.playerPasswords = playerPasswords; nameInputContainer.visible = false; virtualKeyboard.visible = false; numberKeyboard.visible = false; loadQuestion(); } else { // Show error if name or password is empty feedbackText.setText('कृपया नाम और पासवर्ड दोनों दर्ज करें!'); feedbackText.tint = 0xFF0000; feedbackText.visible = true; LK.setTimeout(function () { feedbackText.setText(''); }, 3000); } }; for (var i = 0; i < keyButtons.length; i++) { (function (index) { keyButtons[index].down = function () { var _char = keyButtons[index].charValue; // Handle reload overlay inputs if (reloadOverlay.visible) { if (isPasswordInput) { if (_char === '⌫') { if (reloadPassword.length > 0) { reloadPassword = reloadPassword.substring(0, reloadPassword.length - 1); passwordInputText.setText(reloadPassword || 'पासवर्ड दर्ज करें'); passwordInputText.tint = reloadPassword ? 0x000000 : 0x666666; } } else if (reloadPassword.length < 20) { reloadPassword += _char; passwordInputText.setText(reloadPassword); passwordInputText.tint = 0x000000; } } else if (isNameInput) { if (_char === '⌫') { if (reloadName.length > 0) { reloadName = reloadName.substring(0, reloadName.length - 1); nameInputReloadText.setText(reloadName || 'नाम दर्ज करें'); nameInputReloadText.tint = reloadName ? 0x000000 : 0x666666; } } else if (reloadName.length < 20) { reloadName += _char; nameInputReloadText.setText(reloadName); nameInputReloadText.tint = 0x000000; } } } else { // Handle regular name input if (nameInputContainer.visible) { if (isSettingPassword) { if (_char === '⌫') { if (playerPassword.length > 0) { playerPassword = playerPassword.substring(0, playerPassword.length - 1); passwordInputFieldText.setText(playerPassword || 'पासवर्ड सेट करें'); passwordInputFieldText.tint = playerPassword ? 0x000000 : 0x666666; } } else if (playerPassword.length < 20) { playerPassword += _char; passwordInputFieldText.setText(playerPassword); passwordInputFieldText.tint = 0x000000; } } else { if (_char === '⌫') { if (playerName.length > 0) { playerName = playerName.substring(0, playerName.length - 1); nameInputText.setText(playerName || 'टैप करके नाम दर्ज करें'); nameInputText.tint = playerName ? 0x000000 : 0x666666; } } else if (playerName.length < 20) { playerName += _char; nameInputText.setText(playerName); nameInputText.tint = 0x000000; } } } } }; })(i); } // Number keyboard button handlers for (var i = 0; i < numberKeyButtons.length; i++) { (function (index) { numberKeyButtons[index].down = function () { var _char = numberKeyButtons[index].charValue; if (isSettingPassword) { if (_char === '⌫') { if (playerPassword.length > 0) { playerPassword = playerPassword.substring(0, playerPassword.length - 1); passwordInputFieldText.setText(playerPassword || 'पासवर्ड सेट करें'); passwordInputFieldText.tint = playerPassword ? 0x000000 : 0x666666; } } else if (playerPassword.length < 20) { playerPassword += _char; passwordInputFieldText.setText(playerPassword); passwordInputFieldText.tint = 0x000000; } } }; })(i); } // Check if player has entered name - ensure new players can enter name if (!playerName || playerName === '') { nameInputContainer.visible = true; } else { // Hide name input container once name is entered nameInputContainer.visible = false; // Initialize first question loadQuestion(); } // Game update loop game.update = function () { // Update any animations or game logic here if (gameState === 'playing') { // Game is active, handle any continuous updates } };
===================================================================
--- original.js
+++ change.js
@@ -120,10 +120,10 @@
/****
* Game Code
****/
-// Game state variables
// Brand Logo Assets
+// Game state variables
var gameState = 'playing';
var currentLevel = 1;
var currentQuestion = 0;
var score = 0;