User prompt
Ama tamamladığımız, yaptığımız şeylerin üstünde tic çıksın yani yeşil bir şey olsun tic böyle onaylanmış yani yaptık bunu bitirdik.
User prompt
bu gri renkli geri tuşunu kaldır
User prompt
Logoların seçme düğmelerini büyüt ve daha çok kareye benzesin daha büyük olsunlar.
User prompt
aynı resmi kullanan logolar var değiştir resim ekle
User prompt
Yemek yazısının arkasını kırmızı renge boya.
User prompt
futbol yazısının arkasını yeşile boya
User prompt
Yemek yazısının arkasını sarı renge boya
User prompt
Arabalar yazan düğmenin arkasını siyah, yemekler yazan yerin arkasını sarı renge boya.
User prompt
aynı çıkış dışını logo seçtiğimiz diğer kısma da ekle
User prompt
çıkış tuşunu biraz daha altı altı
User prompt
Çıkış düğmesini de altının altına al.
User prompt
bir logo seçtikten sonra çıkmak için bir çıkış düğmesi olsun
User prompt
ve silmek istediğimiz harfin üstüne basarak silebilelim
User prompt
11 harf var yani olmaması gereken kadar yani 11 ise 15 tane harf olsun her resim için her logo için
User prompt
Herkesin altın sayısını onunla başlat. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Bu yazılarda Apple Google falan yazması yerine firmanın logosu olsun yani görsel olarak.
User prompt
Her şeyi tam ekran yap. Büyüt.
User prompt
Logoyu seçtikten sonra bilmeye çalıştığımız ekranı yaklaştır, büyük olsun.
User prompt
sadece kaydetme sistemi eklentisi olsun kaydetme sistemi de altınları ve tamamladığımız şeylerin kaydetsin bu logoları bildiğimizi bir daha yapamayalım ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
tüm eklentileri kaldır hani
User prompt
o siyah buton niye var kaldır koyun yani altın şeyini de sağ tarafa al
User prompt
Biriktirdiğimiz cetonlar sol tarafta değil sağ tarafta olsun.
User prompt
Harfler Sürükleyip Yerleştirmeli Değil Tıklanınca Kaybolmalı Olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Logo Quiz Challenge
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var AnswerSlot = Container.expand(function (index) { var self = Container.call(this); var bg = self.attachAsset('answerBox', { anchorX: 0.5, anchorY: 0.5 }); self.index = index; self.occupiedLetter = null; return self; }); var CategoryButton = Container.expand(function (category) { var self = Container.call(this); var bg = self.attachAsset('categoryButton', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(category, { size: 80, fill: 0xFFFFFF }); text.anchor.set(0.5, 0.5); self.addChild(text); self.category = category; self.down = function (x, y, obj) { self.scaleX = 0.95; self.scaleY = 0.95; showCategoryLogos(self.category); }; self.up = function (x, y, obj) { self.scaleX = 1; self.scaleY = 1; }; return self; }); var HintButton = Container.expand(function () { var self = Container.call(this); var bg = self.attachAsset('hintButton', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2('Hint (5 coins)', { size: 50, fill: 0xFFFFFF }); text.anchor.set(0.5, 0.5); self.addChild(text); self.down = function (x, y, obj) { if (goldCoins >= 5) { useHint(); } }; return self; }); var LetterTile = Container.expand(function (letter) { var self = Container.call(this); var bg = self.attachAsset('letterTile', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(letter, { size: 60, fill: 0x333333 }); text.anchor.set(0.5, 0.5); self.addChild(text); self.letter = letter; self.originalX = 0; self.originalY = 0; self.isPlaced = false; self.targetSlot = null; self.down = function (x, y, obj) { if (!self.isPlaced) { // Find next available answer slot var nextSlot = null; for (var i = 0; i < answerSlots.length; i++) { if (!answerSlots[i].occupiedLetter) { nextSlot = answerSlots[i]; break; } } if (nextSlot) { placeLetter(self, nextSlot); checkAnswer(); } } else { // Letter is placed, remove it from answer slot removeLetter(self); } }; return self; }); var LogoButton = Container.expand(function (logoName, logoData) { var self = Container.call(this); var bg = self.attachAsset('logoContainer', { anchorX: 0.5, anchorY: 0.5 }); // Get logo asset name from company name var logoAssetName = logoData.name.toLowerCase() + 'Logo'; if (logoData.name === 'Real Madrid') logoAssetName = 'realmadridLogo'; if (logoData.name === 'Manchester United') logoAssetName = 'manchesterLogo'; if (logoData.name === 'McDonalds') logoAssetName = 'mcdonaldsLogo'; if (logoData.name === 'Pizza Hut') logoAssetName = 'pizzahutLogo'; var logoVisual = self.attachAsset(logoAssetName, { anchorX: 0.5, anchorY: 0.5, scaleX: 0.8, scaleY: 0.8 }); self.logoData = logoData; self.down = function (x, y, obj) { self.scaleX = 0.95; self.scaleY = 0.95; startLogoGuess(self.logoData); }; self.up = function (x, y, obj) { self.scaleX = 1; self.scaleY = 1; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2C3E50 }); /**** * Game Code ****/ // Logo assets - Food // Logo assets - Cars // Logo assets - Football // Logo assets - Technology // Game state variables var gameState = 'menu'; // 'menu', 'category', 'guessing' var goldCoins = storage.goldCoins || 10; var completedLogos = storage.completedLogos || {}; var currentCategory = ''; var currentLogo = null; var draggedLetter = null; var letterTiles = []; var answerSlots = []; var currentAnswer = ''; // Logo data var logoDatabase = { 'Technology': [{ name: 'Apple', answer: 'APPLE' }, { name: 'Google', answer: 'GOOGLE' }, { name: 'Microsoft', answer: 'MICROSOFT' }, { name: 'Samsung', answer: 'SAMSUNG' }, { name: 'Facebook', answer: 'FACEBOOK' }], 'Football': [{ name: 'Barcelona', answer: 'BARCELONA' }, { name: 'Real Madrid', answer: 'REALMADRID' }, { name: 'Liverpool', answer: 'LIVERPOOL' }, { name: 'Manchester United', answer: 'MANCHESTER' }, { name: 'Arsenal', answer: 'ARSENAL' }], 'Cars': [{ name: 'BMW', answer: 'BMW' }, { name: 'Mercedes', answer: 'MERCEDES' }, { name: 'Toyota', answer: 'TOYOTA' }, { name: 'Ferrari', answer: 'FERRARI' }, { name: 'Audi', answer: 'AUDI' }], 'Food': [{ name: 'McDonalds', answer: 'MCDONALDS' }, { name: 'KFC', answer: 'KFC' }, { name: 'Subway', answer: 'SUBWAY' }, { name: 'Pizza Hut', answer: 'PIZZAHUT' }, { name: 'Starbucks', answer: 'STARBUCKS' }] }; // UI Elements var coinDisplay; var backButton; function initializeMenu() { game.removeChildren(); gameState = 'menu'; // Title var title = new Text2('Logo Quiz Challenge', { size: 120, fill: 0xFFFFFF }); title.anchor.set(0.5, 0.5); title.x = 1024; title.y = 500; game.addChild(title); // Category buttons var categories = ['Technology', 'Football', 'Cars', 'Food']; for (var i = 0; i < categories.length; i++) { var button = new CategoryButton(categories[i]); button.x = 1024; button.y = 800 + i * 220; game.addChild(button); } updateCoinDisplay(); } function showCategoryLogos(category) { game.removeChildren(); gameState = 'category'; currentCategory = category; // Category title var title = new Text2(category + ' Logos', { size: 100, fill: 0xFFFFFF }); title.anchor.set(0.5, 0.5); title.x = 1024; title.y = 400; game.addChild(title); // Logo buttons - filter out completed logos var logos = logoDatabase[category]; var availableLogos = []; for (var i = 0; i < logos.length; i++) { var logoKey = category + '_' + logos[i].name; if (!completedLogos[logoKey]) { availableLogos.push(logos[i]); } } var cols = 3; var startX = 1024 - (cols - 1) * 200; var startY = 700; for (var i = 0; i < availableLogos.length; i++) { var logoButton = new LogoButton(availableLogos[i].name + 'Logo', availableLogos[i]); logoButton.x = startX + i % cols * 400; logoButton.y = startY + Math.floor(i / cols) * 300; game.addChild(logoButton); } createBackButton(); updateCoinDisplay(); } function startLogoGuess(logoData) { game.removeChildren(); gameState = 'guessing'; currentLogo = logoData; letterTiles = []; answerSlots = []; // Logo display area - larger and more prominent visual logo var logoAssetName = logoData.name.toLowerCase() + 'Logo'; if (logoData.name === 'Real Madrid') logoAssetName = 'realmadridLogo'; if (logoData.name === 'Manchester United') logoAssetName = 'manchesterLogo'; if (logoData.name === 'McDonalds') logoAssetName = 'mcdonaldsLogo'; if (logoData.name === 'Pizza Hut') logoAssetName = 'pizzahutLogo'; var logoVisual = LK.getAsset(logoAssetName, { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); logoVisual.x = 1024; logoVisual.y = 500; game.addChild(logoVisual); // Create answer slots var answerLength = logoData.answer.length; var slotSpacing = 140; var startX = 1024 - (answerLength - 1) * slotSpacing / 2; for (var i = 0; i < answerLength; i++) { var slot = new AnswerSlot(i); slot.x = startX + i * slotSpacing; slot.y = 900; answerSlots.push(slot); game.addChild(slot); } // Create letter tiles createLetterTiles(logoData.answer); // Hint button var hintBtn = new HintButton(); hintBtn.x = 1024; hintBtn.y = 1200; game.addChild(hintBtn); createBackButton(); updateCoinDisplay(); } function createLetterTiles(answer) { var letters = answer.split(''); var decoyLetters = ['X', 'Z', 'Q', 'J', 'K', 'W', 'V', 'Y', 'H', 'P', 'C', 'U', 'N', 'D', 'F']; var allLetters = letters.slice(); // Copy answer letters // Add decoy letters to reach exactly 15 total letters var decoyCount = 15 - letters.length; if (decoyCount > 0) { // Add decoy letters, cycling through the decoy array if needed for (var d = 0; d < decoyCount; d++) { allLetters.push(decoyLetters[d % decoyLetters.length]); } } // If answer is longer than 15, just use the first 15 letters if (allLetters.length > 15) { allLetters = allLetters.slice(0, 15); } // Shuffle letters for (var i = allLetters.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = allLetters[i]; allLetters[i] = allLetters[j]; allLetters[j] = temp; } // Create tiles var cols = 5; var startX = 1024 - (cols - 1) * 80; var startY = 1450; for (var i = 0; i < allLetters.length; i++) { var tile = new LetterTile(allLetters[i]); tile.x = startX + i % cols * 160; tile.y = startY + Math.floor(i / cols) * 160; letterTiles.push(tile); game.addChild(tile); } } function createBackButton() { // Back button functionality removed } function updateCoinDisplay() { if (coinDisplay) { coinDisplay.parent.removeChild(coinDisplay); } coinDisplay = new Container(); var coinIcon = coinDisplay.addChild(LK.getAsset('coinIcon', { anchorX: 0.5, anchorY: 0.5 })); var coinText = new Text2(goldCoins.toString(), { size: 60, fill: 0xFFD700 }); coinText.anchor.set(1, 0.5); coinText.x = -50; coinDisplay.addChild(coinText); coinDisplay.x = -80; coinDisplay.y = 150; LK.gui.topRight.addChild(coinDisplay); } function useHint() { if (goldCoins < 5 || !currentLogo) return; goldCoins -= 5; storage.goldCoins = goldCoins; updateCoinDisplay(); // Find an empty slot and place a correct letter for (var i = 0; i < answerSlots.length; i++) { var slot = answerSlots[i]; if (!slot.occupiedLetter) { var correctLetter = currentLogo.answer[i]; // Find the letter tile for (var j = 0; j < letterTiles.length; j++) { var tile = letterTiles[j]; if (tile.letter === correctLetter && !tile.isPlaced) { placeLetter(tile, slot); break; } } break; } } checkAnswer(); } function removeLetter(letter) { if (!letter.isPlaced || !letter.targetSlot) return; var slot = letter.targetSlot; // Clear slot slot.occupiedLetter = null; // Remove letter copy from answer slot if (slot.letterCopy) { slot.letterCopy.destroy(); slot.letterCopy = null; } // Reset letter to original state letter.isPlaced = false; letter.targetSlot = null; letter.alpha = 1; letter.x = letter.originalX; letter.y = letter.originalY; } function placeLetter(letter, slot) { if (slot.occupiedLetter) { // Return previous letter to pool var prevLetter = slot.occupiedLetter; prevLetter.isPlaced = false; prevLetter.targetSlot = null; prevLetter.alpha = 1; // Remove the letter copy from answer slot if (slot.letterCopy) { slot.letterCopy.destroy(); slot.letterCopy = null; } prevLetter.x = prevLetter.originalX; prevLetter.y = prevLetter.originalY; } letter.isPlaced = true; letter.targetSlot = slot; slot.occupiedLetter = letter; // Make the original tile appear faded/hidden letter.alpha = 0.3; // Create a copy of the letter in the answer slot var letterCopy = new LetterTile(letter.letter); letterCopy.x = slot.x; letterCopy.y = slot.y; letterCopy.isPlaced = true; letterCopy.down = function (x, y, obj) { removeLetter(letter); }; slot.letterCopy = letterCopy; game.addChild(letterCopy); } function checkAnswer() { var playerAnswer = ''; for (var i = 0; i < answerSlots.length; i++) { var slot = answerSlots[i]; if (slot.occupiedLetter) { playerAnswer += slot.occupiedLetter.letter; } else { return; // Not all slots filled } } if (playerAnswer === currentLogo.answer) { // Correct answer goldCoins += 10; storage.goldCoins = goldCoins; // Mark logo as completed var logoKey = currentCategory + '_' + currentLogo.name; completedLogos[logoKey] = true; storage.completedLogos = completedLogos; LK.getSound('correctAnswer').play(); LK.getSound('coinEarned').play(); LK.effects.flashScreen(0x00FF00, 500); LK.setTimeout(function () { showCategoryLogos(currentCategory); }, 1000); } } function handleMove(x, y, obj) { // Move handler no longer needed for letter dragging } game.move = handleMove; game.up = function (x, y, obj) { // Up handler no longer needed for letter dragging }; // Initialize the game initializeMenu();
===================================================================
--- original.js
+++ change.js
@@ -89,8 +89,11 @@
if (nextSlot) {
placeLetter(self, nextSlot);
checkAnswer();
}
+ } else {
+ // Letter is placed, remove it from answer slot
+ removeLetter(self);
}
};
return self;
});
@@ -134,13 +137,13 @@
/****
* Game Code
****/
-// Game state variables
-// Logo assets - Technology
-// Logo assets - Football
-// Logo assets - Cars
// Logo assets - Food
+// Logo assets - Cars
+// Logo assets - Football
+// Logo assets - Technology
+// Game state variables
var gameState = 'menu'; // 'menu', 'category', 'guessing'
var goldCoins = storage.goldCoins || 10;
var completedLogos = storage.completedLogos || {};
var currentCategory = '';
@@ -397,8 +400,25 @@
}
}
checkAnswer();
}
+function removeLetter(letter) {
+ if (!letter.isPlaced || !letter.targetSlot) return;
+ var slot = letter.targetSlot;
+ // Clear slot
+ slot.occupiedLetter = null;
+ // Remove letter copy from answer slot
+ if (slot.letterCopy) {
+ slot.letterCopy.destroy();
+ slot.letterCopy = null;
+ }
+ // Reset letter to original state
+ letter.isPlaced = false;
+ letter.targetSlot = null;
+ letter.alpha = 1;
+ letter.x = letter.originalX;
+ letter.y = letter.originalY;
+}
function placeLetter(letter, slot) {
if (slot.occupiedLetter) {
// Return previous letter to pool
var prevLetter = slot.occupiedLetter;
@@ -422,8 +442,11 @@
var letterCopy = new LetterTile(letter.letter);
letterCopy.x = slot.x;
letterCopy.y = slot.y;
letterCopy.isPlaced = true;
+ letterCopy.down = function (x, y, obj) {
+ removeLetter(letter);
+ };
slot.letterCopy = letterCopy;
game.addChild(letterCopy);
}
function checkAnswer() {