User prompt
çıkış tuşu kırmızı olsun ve çıkış yazısı kırmızı şeyin üstünde olsun ve biraz daha sağa çek
User prompt
Yapay Zeka'ya girdikten sonra oyundan çıkmak için Dili Değiştir tuşunun yanında sağ tarafında çıkış tuşu olsun.
User prompt
oyuna girdiğimizde yapay zeka tuşuna bastık yapay zeka ile oynarken geri tuşu yok o yüzden yapay zeka kısmından çıkamıyoruz
User prompt
Yapay zeka ile oynadığımızda yeni tur veya tekrar oynat tuşu gözükmüyor veya yok.
User prompt
Oyuna ilk girdiğimizde iki büyük tuş olsun biri robotla yani yapay zeka ile kapışmamız olsun bir tanesi de iki player yani iki kişilik olsun. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Oyunun bu versiyonunu ben bir şey eklediğimde veya çıkart dediğimde veya en son çalıştığı sürüme gel dediğimde bu sürüme gel bu versiyona. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Dil Değiştirme Tuşu Yazının Üstünde Olsun
User prompt
Dil değiştirme tuşu var ama diller yanlış. Türkçe iken İngilizce yazıyor, İngilizce iken Türkçe yazıyor.
User prompt
Please fix the bug: 'storage.getItem is not a function' in or related to this line: 'var currentLanguage = storage.getItem('language') || 'tr'; // 'tr' for Turkish, 'en' for English' Line Number: 134 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Sıra kimdeyken, sıra kimin diye yazı yazan kelimenin altında dil değiştirme olsun Türkçe ve İngilizce.
User prompt
2 tane ayrı yazı şekli olsun bir tanesi kırmızı bir tanesi mavi olsun sıra kırmızının olduğunda yani sıra O'nun olduğunda yazı kırmızı sıra X olduğunda yazı mavi olsun
User prompt
Sıra mavinin olduğunda mavi renkte sıra mavinin desin yazı yazan o yazı mavi olsun sıra kırmızının olduğunda sıra kırmızının yazan kelime
User prompt
Sıra kırmızının olduğunda yazı kırmızı, mavinin olduğunda yazı mavi olsun.
User prompt
Sıra o olduğunda yazı kırmızı olsun.
User prompt
Hataları düzelt. Gereksiz kodları kaldır.
User prompt
kaç kişilik olacağını seçtiğimiz ekranı kaldır
User prompt
yapay zeka modunu kaldır
User prompt
Oyundaki herşeyi kontrol et Tüm düğmeleri Tüm çalışma fonksiyonlarını
User prompt
Oyunun başındaki 1 kişilik ya da 2 kişilik seçme şeyi o düğmeleri düzelt oyunu başlatsın.
User prompt
En son yüklediğin görselleri inceledim ve Tic Tac Toe'daki oyuncu seçim ekranında önemli bir ilerleme olduğunu görüyorum. Özellikle "YAPAY ZEKA" ve "İKİ KİŞİLİK" metinlerinin değişimi ve "AI" ikonunun gelmesi olumlu. Ancak belirttiğin gibi, hala düğmelerin tıklanabilirliği ve estetik düzenleme konusunda sorunlar var. Mevcut Durumun Değerlendirmesi: * Başlıklar: "Blue Team (X) Turn" ve "TIC TAC TOE" başlıkları var. * Seçenek Metinleri: "YAPAY ZEKA" ve "İKİ KİŞİLİK" metinleri geldi, bu çok iyi. * Görsel Yanılgı: "YAPAY ZEKA" yanında "AI" ikonlu mavi bir dikdörtgen, "İKİ KİŞİLİK" yanında ise kırmızı bir dikdörtgen var. Düzeltilmesi Gereken Kritik Noktalar ve Yeni İstekler: * Düğmelerin Tıklanabilirliği (EN ÖNEMLİSİ): * Mevcut Durum: "Düğmelere tıklayınca en az 15 kere tıklamamız gerekiyor açılması için". Bu, çok ciddi bir sorun ve oyun deneyimini tamamen bozuyor. * Düzeltme İsteği: Kesinlikle, bu düğmelerin tek bir tıklamayla anında çalışmasını sağla. Kullanıcı bir kez tıkladığında, ilgili oyun modu gecikme olmadan, anında başlamalıdır. Bu, yapay zekanın "anlık görsel değişim" yeteneğinin temelidir. * Tıklama Geri Bildirimi: Düğmeye tıklandığında, düğmenin rengi anlık olarak hafifçe değişsin veya parlaklaşsın ve sonra normal haline dönsün. Bu, tıklamanın algılandığını gösteren belirgin bir görsel geri bildirimdir. * Daha Şık ve Estetik Düzenleme: * Mevcut Durum: "Ekrandaki yazıları çok büyüttü birbirinden koydu iç çekirdeği." Yazılar çok büyük ve düzensiz duruyor, bu da ekranın estetiğini bozuyor. * Düzeltme İsteği: * Yazı Boyutu: "YAPAY ZEKA" ve "İKİ KİŞİLİK" metinlerinin boyutunu küçült. Daha okunabilir ama ekranı doldurmayacak bir boyuta getir. * Hizalama ve Boşluklar: Metinler ve yanlarındaki "AI" ikonlu mavi düğme ile kırmızı düğme arasında daha düzenli boşluklar bırak. Metinleri ve düğmeleri dikeyde hizalı tutarak daha şık bir görünüm elde et. Örneğin, metinler sola yaslı, düğmeler sağa yaslı olabilir ve aralarında yeterli boşluk bırakılır. * Düğme Şekli: Mavi "AI" ikonlu düğme ve kırmızı düğme kare şeklinde değil, dikdörtgen şeklinde duruyor. İstek üzerine bu düğmeleri kesinlikle kare yap. Üzerlerindeki ikonlar veya renkler kare içinde belirgin dursun. * "Blue Team (X) Turn" Başlığının Anlamsızlığı: * Mevcut Durum: Oyuncu seçim ekranında "Blue Team (X) Turn" yazıyor. Bu, henüz bir oyun başlamadığı için anlamsız. * Düzeltme İsteği: Bu ekran için daha uygun bir başlık kullan. Örneğin, "OYUN MODU SEÇİMİ" veya "BAŞLANGIÇ" gibi. Bu başlık, ekranın amacını daha net yansıtacaktır. * "SEÇ" Yazısı Eksikliği: * Mevcut Durum: Mavi ve kırmızı karelerin üzerinde "SEÇ" yazmıyor, sadece "AI" ikonu veya boşluk var. * Düzeltme İsteği: Mavi kare düğmesinin üzerine "SEÇ" yazısını ekle. Aynı şekilde kırmızı kare düğmesinin üzerine de "SEÇ" yazısını ekle. "AI" ikonu, "SEÇ" yazısının yanında veya üzerinde daha küçük bir detay olarak yer alabilir. Veya "YAPAY ZEKA" metninin hemen altında küçük bir "AI" ikonu, yanında ise "SEÇ" butonu olabilir. Önemli olan, düğmenin üzerinde "SEÇ" yazmasıdır. Özetle, öncelikli hedeflerimiz: * Düğmelerin tek tıklamayla anında çalışmasını sağlamak. * "SEÇ" düğmelerini kare yapmak ve üzerlerinde "SEÇ" yazısını bulundurmak. * Yazı boyutlarını küçültmek ve ekran düzenini estetik olarak daha şık hale getirmek. * "Blue Team (X) Turn" başlığını, ekranın amacına uygun bir başlıkla değiştirmek. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Menüler arası geçiş hızını arttır. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyun menüsü ile kaç kişi olacağını seçtiğimiz menüler birbirine girmesin, ayrı olsun, ayrı algılama sistemi.
User prompt
kaç kişi olacağını seçtiğimiz düğmeler 15 kereden fazla tıklayınca açılmasın tek seferde açılsın
User prompt
Tek kişilik ve iki kişilik seçme düğmeleri birbirinden ayrı olsun
User prompt
düğmelerin tıklanması daha kolay olsun başlangıçtaki kaç kişi olacağını seçtiğimiz düğmeler
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Cell = Container.expand(function (row, col) { var self = Container.call(this); self.row = row; self.col = col; self.value = 0; // 0 = empty, 1 = X (blue), 2 = O (red) var cellBg = self.attachAsset('cell', { anchorX: 0.5, anchorY: 0.5, alpha: 0.1 }); self.marker = null; self.placeMarker = function (type) { if (self.value !== 0) return false; self.value = type; if (type === 1) { // Blue X self.marker = self.attachAsset('xMarker', { anchorX: 0.5, anchorY: 0.5, alpha: 0, scaleX: 0.1, scaleY: 0.1 }); tween(self.marker, { alpha: 0.9, scaleX: 1.0, scaleY: 1.0 }, { duration: 300, easing: tween.easeOut }); } else { // Red O self.marker = self.attachAsset('oMarker', { anchorX: 0.5, anchorY: 0.5, alpha: 0, scaleX: 0.1, scaleY: 0.1 }); tween(self.marker, { alpha: 0.9, scaleX: 1.0, scaleY: 1.0 }, { duration: 300, easing: tween.easeOut }); } LK.getSound('place').play(); return true; }; self.down = function (x, y, obj) { if (gameOver || self.value !== 0 || showingMenu) return; if (self.placeMarker(currentPlayer)) { checkWin(); if (!gameOver) { if (gameMode === 1 && currentPlayer === 1) { // Single player mode - switch to AI currentPlayer = 2; updateTurnDisplay(); // AI makes move after short delay LK.setTimeout(function () { if (!gameOver && currentPlayer === 2) { AIPlayer.makeMove(); } }, 500); } else if (gameMode === 2) { // Two player mode - switch players normally currentPlayer = currentPlayer === 1 ? 2 : 1; updateTurnDisplay(); } } } }; return self; }); var WinLine = Container.expand(function () { var self = Container.call(this); self.line = self.attachAsset('winLine', { anchorX: 0.5, anchorY: 0.5, alpha: 0, scaleX: 0 }); self.showWinLine = function (startX, startY, endX, endY, color) { var deltaX = endX - startX; var deltaY = endY - startY; var angle = Math.atan2(deltaY, deltaX); var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); self.x = startX + deltaX / 2; self.y = startY + deltaY / 2; self.line.rotation = angle; self.line.tint = color; self.line.width = distance; tween(self.line, { alpha: 1, scaleX: 1 }, { duration: 500, easing: tween.easeOut }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1a1a1a }); /**** * Game Code ****/ var grid = []; var currentPlayer = 1; // 1 = Blue X, 2 = Red O var gameOver = false; var winLine = null; var gameMode = 0; // 0 = menu, 1 = single player, 2 = two player var showingMenu = true; // Menu setup var menuContainer = game.addChild(new Container()); menuContainer.x = 2048 / 2; menuContainer.y = 2732 / 2; var menuTitle = new Text2('OYUN MODU SEÇİMİ', { size: 120, fill: 0xFFFFFF }); menuTitle.anchor.set(0.5, 0.5); menuContainer.addChild(menuTitle); menuTitle.y = -400; // Single Player Option var singlePlayerContainer = menuContainer.addChild(new Container()); singlePlayerContainer.y = -300; var singlePlayerText = new Text2('YAPAY ZEKA', { size: 80, fill: 0xFFFFFF }); singlePlayerText.anchor.set(1, 0.5); singlePlayerText.x = -150; singlePlayerContainer.addChild(singlePlayerText); var singlePlayerBtn = new Text2('SEÇ', { size: 80, fill: 0xFFFFFF }); singlePlayerBtn.anchor.set(0.5, 0.5); singlePlayerBtn.x = 250; singlePlayerContainer.addChild(singlePlayerBtn); // Create button background var singlePlayerBtnBg = singlePlayerContainer.attachAsset('selectBtn1', { anchorX: 0.5, anchorY: 0.5, x: 250, scaleX: 2.0, scaleY: 2.0 }); // Create separate click area for single player var singlePlayerClickArea = singlePlayerContainer.attachAsset('selectBtn1', { anchorX: 0.5, anchorY: 0.5, x: 250, scaleX: 2.0, scaleY: 2.0, alpha: 0 }); // Two Player Option var twoPlayerContainer = menuContainer.addChild(new Container()); twoPlayerContainer.y = 100; var twoPlayerText = new Text2('İKİ KİŞİLİK', { size: 80, fill: 0xFFFFFF }); twoPlayerText.anchor.set(1, 0.5); twoPlayerText.x = -150; twoPlayerContainer.addChild(twoPlayerText); var twoPlayerBtn = new Text2('SEÇ', { size: 80, fill: 0xFFFFFF }); twoPlayerBtn.anchor.set(0.5, 0.5); twoPlayerBtn.x = 250; twoPlayerContainer.addChild(twoPlayerBtn); // Create button background var twoPlayerBtnBg = twoPlayerContainer.attachAsset('selectBtn2', { anchorX: 0.5, anchorY: 0.5, x: 250, scaleX: 2.0, scaleY: 2.0 }); // Create separate click area for two player var twoPlayerClickArea = twoPlayerContainer.attachAsset('selectBtn2', { anchorX: 0.5, anchorY: 0.5, x: 250, scaleX: 2.0, scaleY: 2.0, alpha: 0 }); var backToMenuBtn = new Text2('Ana Menüye Dön', { size: 80, fill: 0xFFFFFF }); backToMenuBtn.anchor.set(0.5, 0.5); LK.gui.center.addChild(backToMenuBtn); backToMenuBtn.y = 650; backToMenuBtn.alpha = 0; // Game setup var gameBoard = game.addChild(new Container()); gameBoard.x = 2048 / 2; gameBoard.y = 2732 / 2; gameBoard.scaleX = 1.2; gameBoard.scaleY = 1.2; gameBoard.alpha = 0; // Create background var background = gameBoard.attachAsset('gridBackground', { anchorX: 0.5, anchorY: 0.5 }); // Create grid lines var verticalLine1 = gameBoard.attachAsset('gridLine', { anchorX: 0.5, anchorY: 0.5, x: -200, height: 1800 }); var verticalLine2 = gameBoard.attachAsset('gridLine', { anchorX: 0.5, anchorY: 0.5, x: 200, height: 1800 }); var horizontalLine1 = gameBoard.attachAsset('gridLine', { anchorX: 0.5, anchorY: 0.5, y: -200, width: 1800, height: 8 }); var horizontalLine2 = gameBoard.attachAsset('gridLine', { anchorX: 0.5, anchorY: 0.5, y: 200, width: 1800, height: 8 }); // Create cells for (var row = 0; row < 3; row++) { grid[row] = []; for (var col = 0; col < 3; col++) { var cell = gameBoard.addChild(new Cell(row, col)); cell.x = (col - 1) * 600; cell.y = (row - 1) * 600; grid[row][col] = cell; } } // UI Elements var turnText = new Text2('Blue Team (X) Turn', { size: 120, fill: 0x00AAFF }); turnText.anchor.set(0.5, 0); LK.gui.top.addChild(turnText); turnText.y = 150; var statusText = new Text2('', { size: 100, fill: 0xFFFFFF }); statusText.anchor.set(0.5, 0.5); LK.gui.center.addChild(statusText); statusText.y = 400; var playAgainBtn = new Text2('Play Again', { size: 80, fill: 0xFFFFFF }); playAgainBtn.anchor.set(0.5, 0.5); LK.gui.center.addChild(playAgainBtn); playAgainBtn.y = 550; playAgainBtn.alpha = 0; // Menu button handlers - Single Player singlePlayerClickArea.down = function (x, y, obj) { // Button click effect tween(singlePlayerBtnBg, { scaleX: 1.8, scaleY: 1.8 }, { duration: 50, onFinish: function onFinish() { tween(singlePlayerBtnBg, { scaleX: 2.0, scaleY: 2.0 }, { duration: 50 }); } }); startGame(1); }; twoPlayerClickArea.down = function (x, y, obj) { // Button click effect tween(twoPlayerBtnBg, { scaleX: 1.8, scaleY: 1.8 }, { duration: 50, onFinish: function onFinish() { tween(twoPlayerBtnBg, { scaleX: 2.0, scaleY: 2.0 }, { duration: 50 }); } }); startGame(2); }; // Container click handlers removed to prevent interference with separate click areas backToMenuBtn.down = function (x, y, obj) { if (!showingMenu) { showMenu(); } }; function startGame(mode) { gameMode = mode; showingMenu = false; // Hide menu with tween animation tween(menuContainer, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); // Show game with tween animation tween(gameBoard, { alpha: 1 }, { duration: 300, easing: tween.easeOut }); tween(turnText, { alpha: 1 }, { duration: 300, easing: tween.easeOut }); tween(backToMenuBtn, { alpha: 1 }, { duration: 300, easing: tween.easeOut }); // Reset and start game resetGame(); // Make sure turn display is updated after reset updateTurnDisplay(); } function showMenu() { showingMenu = true; gameMode = 0; // Show menu with tween animation tween(menuContainer, { alpha: 1 }, { duration: 300, easing: tween.easeOut }); // Hide game with tween animation tween(gameBoard, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); tween(turnText, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); tween(statusText, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); tween(playAgainBtn, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); tween(backToMenuBtn, { alpha: 0 }, { duration: 200, easing: tween.easeOut }); // Reset game state gameOver = false; } // Don't start game automatically - show menu instead // currentPlayer = Math.random() < 0.5 ? 1 : 2; // updateTurnDisplay(); function updateTurnDisplay() { if (currentPlayer === 1) { turnText.setText('Sıra: MAVİ TAKIM (X)'); turnText.fill = 0x00aaff; } else { if (gameMode === 1) { turnText.setText('Sıra: YAPAY ZEKA (O)'); } else { turnText.setText('Sıra: KIRMIZI TAKIM (O)'); } turnText.fill = 0xff4444; } } function checkWin() { var winner = 0; var winPositions = []; // Check rows for (var row = 0; row < 3; row++) { if (grid[row][0].value !== 0 && grid[row][0].value === grid[row][1].value && grid[row][1].value === grid[row][2].value) { winner = grid[row][0].value; winPositions = [{ row: row, col: 0 }, { row: row, col: 1 }, { row: row, col: 2 }]; break; } } // Check columns if (winner === 0) { for (var col = 0; col < 3; col++) { if (grid[0][col].value !== 0 && grid[0][col].value === grid[1][col].value && grid[1][col].value === grid[2][col].value) { winner = grid[0][col].value; winPositions = [{ row: 0, col: col }, { row: 1, col: col }, { row: 2, col: col }]; break; } } } // Check diagonals if (winner === 0) { if (grid[0][0].value !== 0 && grid[0][0].value === grid[1][1].value && grid[1][1].value === grid[2][2].value) { winner = grid[0][0].value; winPositions = [{ row: 0, col: 0 }, { row: 1, col: 1 }, { row: 2, col: 2 }]; } else if (grid[0][2].value !== 0 && grid[0][2].value === grid[1][1].value && grid[1][1].value === grid[2][0].value) { winner = grid[0][2].value; winPositions = [{ row: 0, col: 2 }, { row: 1, col: 1 }, { row: 2, col: 0 }]; } } if (winner !== 0) { gameOver = true; showWinner(winner, winPositions); return; } // Check for draw var isDraw = true; for (var r = 0; r < 3; r++) { for (var c = 0; c < 3; c++) { if (grid[r][c].value === 0) { isDraw = false; break; } } if (!isDraw) break; } if (isDraw) { gameOver = true; showDraw(); } } function showWinner(winner, positions) { LK.getSound('win').play(); var winnerText; if (gameMode === 1) { winnerText = winner === 1 ? 'KAZANDINIZ!' : 'YAPAY ZEKA KAZANDI!'; } else { winnerText = winner === 1 ? 'MAVİ TAKIM KAZANDI!' : 'KIRMIZI TAKIM KAZANDI!'; } var winnerColor = 0x000000; // Black color statusText.setText(winnerText); statusText.fill = winnerColor; statusText.alpha = 1; turnText.alpha = 0; // Show win line winLine = gameBoard.addChild(new WinLine()); var startPos = grid[positions[0].row][positions[0].col]; var endPos = grid[positions[2].row][positions[2].col]; var lineColor = winner === 1 ? 0x00aaff : 0xff4444; winLine.showWinLine(startPos.x, startPos.y, endPos.x, endPos.y, lineColor); // Show play again button tween(playAgainBtn, { alpha: 1 }, { duration: 500 }); } function showDraw() { statusText.setText('BERABERE!'); statusText.fill = 0x000000; // Black color statusText.alpha = 1; turnText.alpha = 0; // Show play again button tween(playAgainBtn, { alpha: 1 }, { duration: 500 }); } function resetGame() { gameOver = false; if (gameMode === 1) { // Single player always starts with human player currentPlayer = 1; } else if (gameMode === 2) { // Two player mode - random start currentPlayer = Math.random() < 0.5 ? 1 : 2; } // Clear grid for (var row = 0; row < 3; row++) { for (var col = 0; col < 3; col++) { var cell = grid[row][col]; cell.value = 0; if (cell.marker) { cell.marker.destroy(); cell.marker = null; } } } // Clear UI statusText.setText(''); statusText.alpha = 0; turnText.alpha = 1; playAgainBtn.alpha = 0; // Remove win line if (winLine) { winLine.destroy(); winLine = null; } } // Play again button handler playAgainBtn.down = function (x, y, obj) { if (gameOver) { resetGame(); } }; var AIPlayer = { makeMove: function makeMove() { // Simple AI strategy: try to win, block opponent, or take center/corner var move = this.findWinningMove(2) || // Try to win this.findWinningMove(1) || // Block player from winning this.takeCenter() || // Take center if available this.takeCorner() || // Take corner if available this.takeRandomMove(); // Take any available move if (move) { var cell = grid[move.row][move.col]; if (cell.placeMarker(2)) { checkWin(); if (!gameOver) { currentPlayer = 1; updateTurnDisplay(); } } } }, findWinningMove: function findWinningMove(player) { // Check all possible moves to see if any results in a win for (var row = 0; row < 3; row++) { for (var col = 0; col < 3; col++) { if (grid[row][col].value === 0) { // Temporarily place the move grid[row][col].value = player; var isWin = this.checkWinForPlayer(player); grid[row][col].value = 0; // Undo the move if (isWin) { return { row: row, col: col }; } } } } return null; }, checkWinForPlayer: function checkWinForPlayer(player) { // Check rows for (var row = 0; row < 3; row++) { if (grid[row][0].value === player && grid[row][1].value === player && grid[row][2].value === player) { return true; } } // Check columns for (var col = 0; col < 3; col++) { if (grid[0][col].value === player && grid[1][col].value === player && grid[2][col].value === player) { return true; } } // Check diagonals if (grid[0][0].value === player && grid[1][1].value === player && grid[2][2].value === player) { return true; } if (grid[0][2].value === player && grid[1][1].value === player && grid[2][0].value === player) { return true; } return false; }, takeCenter: function takeCenter() { if (grid[1][1].value === 0) { return { row: 1, col: 1 }; } return null; }, takeCorner: function takeCorner() { var corners = [{ row: 0, col: 0 }, { row: 0, col: 2 }, { row: 2, col: 0 }, { row: 2, col: 2 }]; for (var i = 0; i < corners.length; i++) { var corner = corners[i]; if (grid[corner.row][corner.col].value === 0) { return corner; } } return null; }, takeRandomMove: function takeRandomMove() { var availableMoves = []; for (var row = 0; row < 3; row++) { for (var col = 0; col < 3; col++) { if (grid[row][col].value === 0) { availableMoves.push({ row: row, col: col }); } } } if (availableMoves.length > 0) { var randomIndex = Math.floor(Math.random() * availableMoves.length); return availableMoves[randomIndex]; } return null; } };
===================================================================
--- original.js
+++ change.js
@@ -127,16 +127,14 @@
var gameOver = false;
var winLine = null;
var gameMode = 0; // 0 = menu, 1 = single player, 2 = two player
var showingMenu = true;
-var buttonClickCooldown = false;
-var lastClickTime = 0;
// Menu setup
var menuContainer = game.addChild(new Container());
menuContainer.x = 2048 / 2;
menuContainer.y = 2732 / 2;
-var menuTitle = new Text2('TIC TAC TOE', {
- size: 180,
+var menuTitle = new Text2('OYUN MODU SEÇİMİ', {
+ size: 120,
fill: 0xFFFFFF
});
menuTitle.anchor.set(0.5, 0.5);
menuContainer.addChild(menuTitle);
@@ -144,70 +142,70 @@
// Single Player Option
var singlePlayerContainer = menuContainer.addChild(new Container());
singlePlayerContainer.y = -300;
var singlePlayerText = new Text2('YAPAY ZEKA', {
- size: 100,
+ size: 80,
fill: 0xFFFFFF
});
singlePlayerText.anchor.set(1, 0.5);
-singlePlayerText.x = -100;
+singlePlayerText.x = -150;
singlePlayerContainer.addChild(singlePlayerText);
var singlePlayerBtn = new Text2('SEÇ', {
- size: 120,
+ size: 80,
fill: 0xFFFFFF
});
singlePlayerBtn.anchor.set(0.5, 0.5);
-singlePlayerBtn.x = 300;
+singlePlayerBtn.x = 250;
singlePlayerContainer.addChild(singlePlayerBtn);
// Create button background
var singlePlayerBtnBg = singlePlayerContainer.attachAsset('selectBtn1', {
anchorX: 0.5,
anchorY: 0.5,
- x: 300,
- scaleX: 4.0,
- scaleY: 3.0
+ x: 250,
+ scaleX: 2.0,
+ scaleY: 2.0
});
// Create separate click area for single player
var singlePlayerClickArea = singlePlayerContainer.attachAsset('selectBtn1', {
anchorX: 0.5,
anchorY: 0.5,
- x: 300,
- scaleX: 4.0,
- scaleY: 3.0,
+ x: 250,
+ scaleX: 2.0,
+ scaleY: 2.0,
alpha: 0
});
// Two Player Option
var twoPlayerContainer = menuContainer.addChild(new Container());
twoPlayerContainer.y = 100;
var twoPlayerText = new Text2('İKİ KİŞİLİK', {
- size: 100,
+ size: 80,
fill: 0xFFFFFF
});
twoPlayerText.anchor.set(1, 0.5);
-twoPlayerText.x = -100;
+twoPlayerText.x = -150;
twoPlayerContainer.addChild(twoPlayerText);
var twoPlayerBtn = new Text2('SEÇ', {
- size: 120,
+ size: 80,
fill: 0xFFFFFF
});
twoPlayerBtn.anchor.set(0.5, 0.5);
-twoPlayerBtn.x = 300;
+twoPlayerBtn.x = 250;
twoPlayerContainer.addChild(twoPlayerBtn);
// Create button background
var twoPlayerBtnBg = twoPlayerContainer.attachAsset('selectBtn2', {
anchorX: 0.5,
anchorY: 0.5,
- x: 300,
- scaleX: 4.0,
- scaleY: 3.0
+ x: 250,
+ scaleX: 2.0,
+ scaleY: 2.0
});
// Create separate click area for two player
var twoPlayerClickArea = twoPlayerContainer.attachAsset('selectBtn2', {
anchorX: 0.5,
anchorY: 0.5,
- x: 300,
- scaleX: 4.0,
- scaleY: 3.0,
+ x: 250,
+ scaleX: 2.0,
+ scaleY: 2.0,
alpha: 0
});
var backToMenuBtn = new Text2('Ana Menüye Dön', {
size: 80,
@@ -290,44 +288,38 @@
playAgainBtn.y = 550;
playAgainBtn.alpha = 0;
// Menu button handlers - Single Player
singlePlayerClickArea.down = function (x, y, obj) {
- var currentTime = Date.now();
- if (currentTime - lastClickTime < 300) return;
- lastClickTime = currentTime;
// Button click effect
tween(singlePlayerBtnBg, {
- scaleX: 3.7,
- scaleY: 2.7
+ scaleX: 1.8,
+ scaleY: 1.8
}, {
- duration: 100,
- complete: function complete() {
+ duration: 50,
+ onFinish: function onFinish() {
tween(singlePlayerBtnBg, {
- scaleX: 4.0,
- scaleY: 3.0
+ scaleX: 2.0,
+ scaleY: 2.0
}, {
- duration: 100
+ duration: 50
});
}
});
startGame(1);
};
twoPlayerClickArea.down = function (x, y, obj) {
- var currentTime = Date.now();
- if (currentTime - lastClickTime < 300) return;
- lastClickTime = currentTime;
// Button click effect
tween(twoPlayerBtnBg, {
- scaleX: 3.7,
- scaleY: 2.7
+ scaleX: 1.8,
+ scaleY: 1.8
}, {
- duration: 100,
- complete: function complete() {
+ duration: 50,
+ onFinish: function onFinish() {
tween(twoPlayerBtnBg, {
- scaleX: 4.0,
- scaleY: 3.0
+ scaleX: 2.0,
+ scaleY: 2.0
}, {
- duration: 100
+ duration: 50
});
}
});
startGame(2);