User prompt
Ayarlar düğmesini birazcık aşağıya al ve boyutunu büyüt, sembol de ekle.
User prompt
Hayır ayarlar düğmesi çok büyük sadece ayarlar gibi hani böyle yuvarlak bir logo olsun ve bizim para biriminin altında olsun
User prompt
Ayarlar Düğmesini Öyle Menü Seçtiğimiz Gibi Olmasın Da Sağ Tarafta Altının Altında Olsun
User prompt
ilk oyuna girdiğimizde çıkan menüde ayarlar kısmı olsun oradan tüm herşeyi sıfırla verileri sil gibi bir düğme olsun ona basınca hiçbirşey yapılmamı�� gibi olsun yani herşey silinsin baştan başlayalım ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
bildiğimiz ve bitirdiğimiz şeylere bile tıklayalım yaptığımız mesela tıkladığımızda yaptıysak onun ismi yapılmış şekilde gözüksün
User prompt
Yemek kısmına dominoz ekle.
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
/****
* 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
});
// Set background color based on category
if (category === 'Cars') {
bg.tint = 0x000000; // Black background for Cars (Arabalar)
} else if (category === 'Food') {
bg.tint = 0xFF0000; // Red background for Food (Yemekler)
} else if (category === 'Football') {
bg.tint = 0x00FF00; // Green background for Football (Futbol)
}
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 ExitButton = Container.expand(function () {
var self = Container.call(this);
var bg = self.attachAsset('exitButton', {
anchorX: 0.5,
anchorY: 0.5
});
var text = new Text2('Exit', {
size: 50,
fill: 0xFFFFFF
});
text.anchor.set(0.5, 0.5);
self.addChild(text);
self.down = function (x, y, obj) {
self.scaleX = 0.95;
self.scaleY = 0.95;
showCategoryLogos(currentCategory);
};
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) {
// Check if logo is completed
var logoKey = currentCategory + '_' + self.logoData.name;
if (completedLogos[logoKey]) {
// Show completed logo name instead of starting the game
showCompletedLogo(self.logoData);
return;
}
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'
}, {
name: 'Dominos',
answer: 'DOMINOS'
}]
};
// 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);
}
// Settings button in bottom right area
var settingsButton = new CategoryButton('Ayarlar');
settingsButton.x = 1648;
settingsButton.y = 2532;
settingsButton.down = function (x, y, obj) {
settingsButton.scaleX = 0.95;
settingsButton.scaleY = 0.95;
showSettings();
};
settingsButton.up = function (x, y, obj) {
settingsButton.scaleX = 1;
settingsButton.scaleY = 1;
};
game.addChild(settingsButton);
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) * 250;
var startY = 700;
// Show all logos with completion status
var allLogos = logoDatabase[category];
for (var i = 0; i < allLogos.length; i++) {
var logoButton = new LogoButton(allLogos[i].name + 'Logo', allLogos[i]);
logoButton.x = startX + i % cols * 500;
logoButton.y = startY + Math.floor(i / cols) * 450;
game.addChild(logoButton);
// Check if this logo is completed and add checkmark
var logoKey = category + '_' + allLogos[i].name;
if (completedLogos[logoKey]) {
var checkmark = logoButton.attachAsset('checkmark', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.8,
scaleY: 0.8
});
checkmark.x = 150; // Position in top-right corner of logo button
checkmark.y = -150;
}
}
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1848; // Position in top right area, below coins
exitBtn.y = 350; // Further below the coin display
exitBtn.down = function (x, y, obj) {
exitBtn.scaleX = 0.95;
exitBtn.scaleY = 0.95;
initializeMenu(); // Return to main menu instead of category
};
exitBtn.up = function (x, y, obj) {
exitBtn.scaleX = 1;
exitBtn.scaleY = 1;
};
game.addChild(exitBtn);
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);
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1848; // Position in top right area, below coins
exitBtn.y = 350; // Further below the coin display
game.addChild(exitBtn);
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 showSettings() {
game.removeChildren();
gameState = 'settings';
// Settings title
var title = new Text2('Ayarlar', {
size: 120,
fill: 0xFFFFFF
});
title.anchor.set(0.5, 0.5);
title.x = 1024;
title.y = 500;
game.addChild(title);
// Reset data button
var resetButton = new CategoryButton('Tüm Verileri Sıfırla');
resetButton.x = 1024;
resetButton.y = 900;
resetButton.down = function (x, y, obj) {
resetButton.scaleX = 0.95;
resetButton.scaleY = 0.95;
// Reset all saved data
storage.goldCoins = 10;
storage.completedLogos = {};
goldCoins = 10;
completedLogos = {};
// Flash screen to show reset happened
LK.effects.flashScreen(0xFF0000, 500);
};
resetButton.up = function (x, y, obj) {
resetButton.scaleX = 1;
resetButton.scaleY = 1;
};
game.addChild(resetButton);
// Back to menu button
var backButton = new CategoryButton('Ana Menüye Dön');
backButton.x = 1024;
backButton.y = 1200;
backButton.down = function (x, y, obj) {
backButton.scaleX = 0.95;
backButton.scaleY = 0.95;
initializeMenu();
};
backButton.up = function (x, y, obj) {
backButton.scaleX = 1;
backButton.scaleY = 1;
};
game.addChild(backButton);
updateCoinDisplay();
}
function showCompletedLogo(logoData) {
game.removeChildren();
gameState = 'completed';
currentLogo = logoData;
// 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);
// Show "COMPLETED" text
var completedText = new Text2('TAMAMLANDI', {
size: 100,
fill: 0x00FF00
});
completedText.anchor.set(0.5, 0.5);
completedText.x = 1024;
completedText.y = 800;
game.addChild(completedText);
// Show the answer
var answerText = new Text2(logoData.name, {
size: 80,
fill: 0xFFFFFF
});
answerText.anchor.set(0.5, 0.5);
answerText.x = 1024;
answerText.y = 900;
game.addChild(answerText);
// Add checkmark
var checkmark = LK.getAsset('checkmark', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
checkmark.x = 1024;
checkmark.y = 1050;
game.addChild(checkmark);
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1024;
exitBtn.y = 1300;
exitBtn.down = function (x, y, obj) {
exitBtn.scaleX = 0.95;
exitBtn.scaleY = 0.95;
showCategoryLogos(currentCategory); // Return to category view
};
exitBtn.up = function (x, y, obj) {
exitBtn.scaleX = 1;
exitBtn.scaleY = 1;
};
game.addChild(exitBtn);
updateCoinDisplay();
}
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
@@ -282,12 +282,12 @@
button.x = 1024;
button.y = 800 + i * 220;
game.addChild(button);
}
- // Settings button
+ // Settings button in bottom right area
var settingsButton = new CategoryButton('Ayarlar');
- settingsButton.x = 1024;
- settingsButton.y = 800 + categories.length * 220;
+ settingsButton.x = 1648;
+ settingsButton.y = 2532;
settingsButton.down = function (x, y, obj) {
settingsButton.scaleX = 0.95;
settingsButton.scaleY = 0.95;
showSettings();