User prompt
meyvelerin hızı artsın
User prompt
1 buçuk dakika olsun süre
User prompt
bütün meyveler türkçe olsun
User prompt
ana menüdeki müzik işareti oyna tuşu ile aynı orantıda olsun
User prompt
ana menüdeki müzik işareti oyna tuşunun karşısında olsun
User prompt
ana menüdeki durdurma tuşu kaldırılsın
User prompt
tekrar oyna biraz sola kaysın ve ana menüye dön tuşu da biraz sağa kaysın
User prompt
bombaya ölünce tekrar oyna veya ana menüye dön yazsın
User prompt
oyundayken durdurma işaretine basınca ana menüye dön veya devam et işareti kaldırılsın
User prompt
durdur işaretine basınca bomb diyip patlasın
User prompt
pause tuşu geri gelsin
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Bomb = Container.expand(function () { var self = Container.call(this); var bombGraphics = self.attachAsset('bomb', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 7 + Math.random() * 4; self.update = function () { self.y += self.speed; }; return self; }); var Fruit = Container.expand(function (fruitType) { var self = Container.call(this); var fruitGraphics = self.attachAsset(fruitType, { anchorX: 0.5, anchorY: 0.5 }); self.fruitType = fruitType; self.speed = 5 + Math.random() * 3; self.update = function () { self.y += self.speed; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 12; self.fruitCount = 0; self.currentFruitType = null; self.transformed = false; self.moveLeft = function () { if (self.x > 60) { self.x -= self.speed; } }; self.moveRight = function () { if (self.x < 2048 - 60) { self.x += self.speed; } }; self.collectFruit = function (fruitType) { if (self.currentFruitType === null || self.currentFruitType === fruitType) { self.currentFruitType = fruitType; self.fruitCount++; LK.getSound('collect').play(); if (self.fruitCount >= 5) { self.transform(fruitType); } } else { self.resetProgress(); } updateCounterText(); }; self.resetProgress = function () { self.fruitCount = 0; self.currentFruitType = null; self.transformed = false; // Reset to original player graphics if transformed if (self.transformed) { self.removeChild(playerGraphics); playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); } }; self.transform = function (fruitType) { self.transformed = true; LK.getSound('transform').play(); // Track transformation transformationCount++; transformationResults.push(fruitType + '_' + Math.floor((gameTimeLimit - (gameTimeLimit - gameTimer)) / 60)); // Remove old graphics and add new fruit graphics self.removeChild(playerGraphics); playerGraphics = self.attachAsset(fruitType, { anchorX: 0.5, anchorY: 0.5 }); LK.setScore(LK.getScore() + 100); scoreText.setText('Skor: ' + LK.getScore()); tween(playerGraphics, { scaleX: 1.3, scaleY: 1.3 }, { duration: 200, easing: tween.easeOut, onFinish: function onFinish() { tween(playerGraphics, { scaleX: 1, scaleY: 1 }, { duration: 200, easing: tween.easeIn }); } }); self.resetProgress(); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ // Add tomato background var tomatoBackground = game.addChild(LK.getAsset('tomato_bg', { anchorX: 0, anchorY: 0 })); tomatoBackground.x = 0; tomatoBackground.y = 0; var player; var fruits = []; var bombs = []; var gameRunning = false; // Start with game not running var gameStarted = false; // Track if game has started var leftPressed = false; var rightPressed = false; var spawnTimer = 0; var scoreText; var counterText; var playButton; var stopButton; var startMenu; var pauseMenu; var gamePaused = false; var gameTimer = 0; var gameTimeLimit = 120 * 60; // 2 minutes in ticks (60 FPS) var timerText; var transformationCount = 0; var transformationResults = []; // Music control variables var isMusicOn = storage.musicEnabled !== false; // Default to true var musicButton; // Create start menu startMenu = game.addChild(new Container()); // Create play button playButton = startMenu.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 })); playButton.x = 2048 / 2 - 200; playButton.y = 2732 / 2; // Add button labels var playText = new Text2('OYNA', { size: 80, fill: 0x00FF00 }); playText.anchor.set(0.5, 0.5); playText.x = playButton.x; playText.y = playButton.y + 150; startMenu.addChild(playText); // Create music toggle button musicButton = startMenu.addChild(LK.getAsset('apple', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 })); musicButton.x = 2048 / 2 + 200; musicButton.y = 2732 / 2; // Music button label var musicText = new Text2(isMusicOn ? 'MÜZİK AÇIK' : 'MÜZİK KAPALI', { size: 60, fill: isMusicOn ? 0x00FF00 : 0xFF0000 }); musicText.anchor.set(0.5, 0.5); musicText.x = musicButton.x; musicText.y = musicButton.y + 120; startMenu.addChild(musicText); // Create pause menu (hidden initially) pauseMenu = game.addChild(new Container()); pauseMenu.visible = false; // Pause menu background var pauseBg = pauseMenu.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 12, scaleY: 8 })); pauseBg.x = 2048 / 2; pauseBg.y = 2732 / 2; pauseBg.alpha = 0.9; // Continue button var continueButton = pauseMenu.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 })); continueButton.x = 2048 / 2 - 150; continueButton.y = 2732 / 2; // Main menu button var mainMenuButton = pauseMenu.addChild(LK.getAsset('bomb', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 })); mainMenuButton.x = 2048 / 2 + 150; mainMenuButton.y = 2732 / 2; // Pause menu text var pauseTitleText = new Text2('OYUN DURAKLATILDI', { size: 60, fill: 0xFFFFFF }); pauseTitleText.anchor.set(0.5, 0.5); pauseTitleText.x = 2048 / 2; pauseTitleText.y = 2732 / 2 - 150; pauseMenu.addChild(pauseTitleText); var continueText = new Text2('DEVAM ET', { size: 50, fill: 0x00FF00 }); continueText.anchor.set(0.5, 0.5); continueText.x = continueButton.x; continueText.y = continueButton.y + 100; pauseMenu.addChild(continueText); var mainMenuText = new Text2('ANA MENÜ', { size: 50, fill: 0xFF0000 }); mainMenuText.anchor.set(0.5, 0.5); mainMenuText.x = mainMenuButton.x; mainMenuText.y = mainMenuButton.y + 100; pauseMenu.addChild(mainMenuText); // Initialize player (hidden initially) player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2732 - 200; player.visible = false; // Initialize UI (hidden initially) scoreText = new Text2('Skor: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); LK.gui.topLeft.addChild(scoreText); scoreText.x = 120; scoreText.y = 20; scoreText.visible = false; counterText = new Text2('Topla: 0/5', { size: 50, fill: 0xFFFFFF }); counterText.anchor.set(0.5, 0); LK.gui.top.addChild(counterText); counterText.y = 100; counterText.visible = false; timerText = new Text2('Süre: 2:00', { size: 50, fill: 0xFFFF00 }); timerText.anchor.set(1, 0); LK.gui.topRight.addChild(timerText); timerText.x = -20; timerText.y = 20; timerText.visible = false; function updateCounterText() { var fruitName = player.currentFruitType || 'meyveler'; counterText.setText(fruitName + ': ' + player.fruitCount + '/5'); } function toggleMusic() { isMusicOn = !isMusicOn; storage.musicEnabled = isMusicOn; // Update button appearance musicText.setText(isMusicOn ? 'MÜZİK AÇIK' : 'MÜZİK KAPALI'); musicText.fill = isMusicOn ? 0x00FF00 : 0xFF0000; // Control music playback if (isMusicOn) { if (!gameStarted) { LK.playMusic('menuMusic'); } else if (gameRunning && !gamePaused) { LK.playMusic('bgMusic'); } } else { LK.stopMusic(); } } function pauseGame() { gamePaused = true; gameRunning = false; pauseMenu.visible = true; LK.stopMusic(); } function resumeGame() { gamePaused = false; gameRunning = true; pauseMenu.visible = false; if (isMusicOn) { LK.playMusic('bgMusic'); } } function returnToMainMenu() { gamePaused = false; gameRunning = false; gameStarted = false; // Hide pause menu and game elements pauseMenu.visible = false; player.visible = false; scoreText.visible = false; counterText.visible = false; timerText.visible = false; // Show start menu startMenu.visible = true; // Clear game objects for (var i = fruits.length - 1; i >= 0; i--) { fruits[i].destroy(); } fruits = []; for (var j = bombs.length - 1; j >= 0; j--) { bombs[j].destroy(); } bombs = []; // Reset player player.resetProgress(); player.x = 2048 / 2; player.y = 2732 - 200; LK.setScore(0); scoreText.setText('Skor: 0'); updateCounterText(); // Start menu music LK.stopMusic(); if (isMusicOn) { LK.playMusic('menuMusic'); } } function startGame() { gameStarted = true; gameRunning = true; gameTimer = 0; transformationCount = 0; transformationResults = []; // Hide start menu startMenu.visible = false; // Show player player.visible = true; // Stop menu music and start background music LK.stopMusic(); if (isMusicOn) { LK.playMusic('bgMusic'); } // Show UI elements scoreText.visible = true; counterText.visible = true; timerText.visible = true; } // Touch controls for full screen mobile play var touchStartX = null; var touchCurrentX = null; game.down = function (x, y, obj) { if (gamePaused) { // Handle pause menu interactions var continueButtonBounds = { left: 2048 / 2 - 150 - 80, right: 2048 / 2 - 150 + 80, top: 2732 / 2 - 80, bottom: 2732 / 2 + 80 }; var mainMenuButtonBounds = { left: 2048 / 2 + 150 - 80, right: 2048 / 2 + 150 + 80, top: 2732 / 2 - 80, bottom: 2732 / 2 + 80 }; if (x >= continueButtonBounds.left && x <= continueButtonBounds.right && y >= continueButtonBounds.top && y <= continueButtonBounds.bottom) { resumeGame(); } else if (x >= mainMenuButtonBounds.left && x <= mainMenuButtonBounds.right && y >= mainMenuButtonBounds.top && y <= mainMenuButtonBounds.bottom) { returnToMainMenu(); } } else if (!gameStarted) { // Check if play button was clicked var playButtonBounds = { left: playButton.x - 100, right: playButton.x + 100, top: playButton.y - 100, bottom: playButton.y + 100 }; // Check if music button was clicked var musicButtonBounds = { left: musicButton.x - 100, right: musicButton.x + 100, top: musicButton.y - 100, bottom: musicButton.y + 100 }; if (x >= playButtonBounds.left && x <= playButtonBounds.right && y >= playButtonBounds.top && y <= playButtonBounds.bottom) { // Start game startGame(); } else if (x >= musicButtonBounds.left && x <= musicButtonBounds.right && y >= musicButtonBounds.top && y <= musicButtonBounds.bottom) { // Toggle music toggleMusic(); } } else if (gameStarted && gameRunning) { // Normal touch controls for gameplay touchStartX = x; touchCurrentX = x; } }; game.move = function (x, y, obj) { if (gameStarted && gameRunning && !gamePaused) { touchCurrentX = x; // Immediate player positioning for full screen responsiveness if (x < 2048 / 2) { leftPressed = true; rightPressed = false; } else { leftPressed = false; rightPressed = true; } } else if (touchStartX !== null && !gamePaused) { touchCurrentX = x; } }; game.up = function (x, y, obj) { touchStartX = null; touchCurrentX = null; }; function spawnFruit() { var fruitTypes = ['apple', 'orange', 'banana', 'grape', 'kivi', 'armut', 'ananas', 'karpuz']; var randomType = fruitTypes[Math.floor(Math.random() * fruitTypes.length)]; var fruit = new Fruit(randomType); fruit.x = Math.random() * (2048 - 160) + 80; fruit.y = -80; fruits.push(fruit); game.addChild(fruit); } function spawnBomb() { var bomb = new Bomb(); bomb.x = Math.random() * (2048 - 180) + 90; bomb.y = -90; bombs.push(bomb); game.addChild(bomb); } game.update = function () { if (!gameStarted || !gameRunning || gamePaused) return; // Update game timer gameTimer++; var remainingTime = gameTimeLimit - gameTimer; var minutes = Math.floor(remainingTime / (60 * 60)); var seconds = Math.floor(remainingTime % (60 * 60) / 60); timerText.setText('Süre: ' + minutes + ':' + (seconds < 10 ? '0' : '') + seconds); // Check if time is up if (remainingTime <= 0) { gameRunning = false; showTransformationResults(); return; } // Handle touch movement for full screen play if (touchStartX !== null && touchCurrentX !== null) { var deltaX = touchCurrentX - touchStartX; if (deltaX < -30) { player.moveLeft(); } else if (deltaX > 30) { player.moveRight(); } } else { // Direct touch positioning for better full screen control if (touchCurrentX !== null) { if (touchCurrentX < player.x - 50) { player.moveLeft(); } else if (touchCurrentX > player.x + 50) { player.moveRight(); } } } // Spawn objects spawnTimer++; if (spawnTimer % 80 === 0) { spawnFruit(); } if (spawnTimer % 150 === 0) { spawnBomb(); } // Update and check fruits for (var i = fruits.length - 1; i >= 0; i--) { var fruit = fruits[i]; if (fruit.lastY === undefined) fruit.lastY = fruit.y; // Remove off-screen fruits if (fruit.lastY <= 2732 && fruit.y > 2732) { fruit.destroy(); fruits.splice(i, 1); continue; } // Check collision with player if (fruit.intersects(player)) { player.collectFruit(fruit.fruitType); LK.setScore(LK.getScore() + 10); scoreText.setText('Skor: ' + LK.getScore()); fruit.destroy(); fruits.splice(i, 1); continue; } fruit.lastY = fruit.y; } // Update and check bombs for (var j = bombs.length - 1; j >= 0; j--) { var bomb = bombs[j]; if (bomb.lastY === undefined) bomb.lastY = bomb.y; // Remove off-screen bombs if (bomb.lastY <= 2732 && bomb.y > 2732) { bomb.destroy(); bombs.splice(j, 1); continue; } // Check collision with player if (bomb.intersects(player)) { LK.getSound('explode').play(); LK.stopMusic(); if (isMusicOn) { LK.playMusic('sadMusic'); } gameRunning = false; LK.effects.flashScreen(0xff0000, 1000); showDeathMenu(); bomb.destroy(); bombs.splice(j, 1); continue; } bomb.lastY = bomb.y; } }; function showDeathMenu() { // Create death menu var deathMenu = game.addChild(new Container()); // Background var deathBg = deathMenu.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 12, scaleY: 8 })); deathBg.x = 2048 / 2; deathBg.y = 2732 / 2; deathBg.alpha = 0.9; deathBg.tint = 0x800000; // Dark red tint // Death title var deathTitleText = new Text2('BOMBAYA ÇARPTIN!', { size: 70, fill: 0xFF0000 }); deathTitleText.anchor.set(0.5, 0.5); deathTitleText.x = 2048 / 2; deathTitleText.y = 2732 / 2 - 150; deathMenu.addChild(deathTitleText); // Retry button var retryButton = deathMenu.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 })); retryButton.x = 2048 / 2 - 200; retryButton.y = 2732 / 2; // Main menu button for death screen var deathMainMenuButton = deathMenu.addChild(LK.getAsset('bomb', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 })); deathMainMenuButton.x = 2048 / 2 + 200; deathMainMenuButton.y = 2732 / 2; // Button labels var retryText = new Text2('TEKRAR OYNA', { size: 50, fill: 0x00FF00 }); retryText.anchor.set(0.5, 0.5); retryText.x = retryButton.x; retryText.y = retryButton.y + 100; deathMenu.addChild(retryText); var deathMainMenuText = new Text2('ANA MENÜYE DÖN', { size: 50, fill: 0xFF0000 }); deathMainMenuText.anchor.set(0.5, 0.5); deathMainMenuText.x = deathMainMenuButton.x; deathMainMenuText.y = deathMainMenuButton.y + 100; deathMenu.addChild(deathMainMenuText); // Handle death menu clicks var originalDown = game.down; game.down = function (x, y, obj) { // Check retry button var retryButtonBounds = { left: 2048 / 2 - 200 - 80, right: 2048 / 2 - 200 + 80, top: 2732 / 2 - 80, bottom: 2732 / 2 + 80 }; // Check main menu button var deathMainMenuButtonBounds = { left: 2048 / 2 + 200 - 80, right: 2048 / 2 + 200 + 80, top: 2732 / 2 - 80, bottom: 2732 / 2 + 80 }; if (x >= retryButtonBounds.left && x <= retryButtonBounds.right && y >= retryButtonBounds.top && y <= retryButtonBounds.bottom) { // Restart game deathMenu.destroy(); game.down = originalDown; restartGame(); } else if (x >= deathMainMenuButtonBounds.left && x <= deathMainMenuButtonBounds.right && y >= deathMainMenuButtonBounds.top && y <= deathMainMenuButtonBounds.bottom) { // Return to main menu deathMenu.destroy(); game.down = originalDown; returnToMainMenu(); } }; } function restartGame() { // Clear all game objects for (var i = fruits.length - 1; i >= 0; i--) { fruits[i].destroy(); } fruits = []; for (var j = bombs.length - 1; j >= 0; j--) { bombs[j].destroy(); } bombs = []; // Reset player player.resetProgress(); player.x = 2048 / 2; player.y = 2732 - 200; // Reset game state LK.setScore(0); scoreText.setText('Skor: 0'); updateCounterText(); gameTimer = 0; transformationCount = 0; transformationResults = []; spawnTimer = 0; // Start game again gameRunning = true; LK.stopMusic(); if (isMusicOn) { LK.playMusic('bgMusic'); } } function showTransformationResults() { // Store results in persistent storage storage.lastGameTransformations = transformationCount; storage.lastGameResults = transformationResults; // Create results display var resultsContainer = game.addChild(new Container()); // Background var resultsBg = resultsContainer.addChild(LK.getAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 15, scaleY: 15 })); resultsBg.x = 2048 / 2; resultsBg.y = 2732 / 2; resultsBg.alpha = 0.8; // Title var titleText = new Text2('2 Dakika Sonuçları', { size: 80, fill: 0xFFFFFF }); titleText.anchor.set(0.5, 0.5); titleText.x = 2048 / 2; titleText.y = 2732 / 2 - 300; resultsContainer.addChild(titleText); // Total transformations var totalText = new Text2('Toplam Dönüşüm: ' + transformationCount, { size: 60, fill: 0x00FF00 }); totalText.anchor.set(0.5, 0.5); totalText.x = 2048 / 2; totalText.y = 2732 / 2 - 200; resultsContainer.addChild(totalText); // Detailed results var detailsY = 2732 / 2 - 100; for (var i = 0; i < Math.min(transformationResults.length, 15); i++) { var resultData = transformationResults[i].split('_'); var fruitType = resultData[0]; var timeValue = resultData[1]; var detailText = new Text2(i + 1 + '. ' + fruitType + ' - ' + timeValue + 's', { size: 35, fill: 0xFFFFFF }); detailText.anchor.set(0.5, 0.5); detailText.x = 2048 / 2; detailText.y = detailsY + i * 40; resultsContainer.addChild(detailText); } // Show game over after 3 seconds LK.setTimeout(function () { LK.showGameOver(); }, 3000); } // Initialize counter text updateCounterText(); // Start peaceful menu music if (isMusicOn) { LK.playMusic('menuMusic'); }
===================================================================
--- original.js
+++ change.js
@@ -179,10 +179,10 @@
anchorY: 0.5,
scaleX: 1.2,
scaleY: 1.2
}));
-musicButton.x = 2048 / 2;
-musicButton.y = 2732 / 2 + 200;
+musicButton.x = 2048 / 2 + 200;
+musicButton.y = 2732 / 2;
// Music button label
var musicText = new Text2(isMusicOn ? 'MÜZİK AÇIK' : 'MÜZİK KAPALI', {
size: 60,
fill: isMusicOn ? 0x00FF00 : 0xFF0000
bomba. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Elma. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
muz. In-Game asset. 2d. High contrast. No shadows
portakal. In-Game asset. 2d. High contrast. No shadows
Üzüm. In-Game asset. 2d. High contrast. No shadows
gülen domates. In-Game asset. 2d. High contrast. No shadows
orman büyük olsun. In-Game asset. 2d. High contrast. No shadows
kivi. In-Game asset. 2d. High contrast. No shadows
Ananas. In-Game asset. 2d. High contrast. No shadows
Armut. In-Game asset. 2d. High contrast. No shadows
karpuz. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat