User prompt
Sahenin ortasına yeni ' start' adlı görsel assenti oluştut
User prompt
Start butonu oluştur
User prompt
Please fix the bug: 'Uncaught ReferenceError: setGameMode is not defined' in or related to this line: 'setGameMode('mode3');' Line Number: 253
User prompt
Oyun menü sayfası gözükmeden başlamaz
User prompt
Menü sayfasında seçim yapmadan oyunun başlamamasını sağla
User prompt
Assign them selection options
User prompt
Menü sayfasına özellikler oluştur
User prompt
Oyun başlamadan önceki sahne menü seçim sayfasıdır
User prompt
Menü sayfasında hamle yapılmadan oyun başlamaz
User prompt
Menü sayfasında hamle yapılmadan oyun başlamaz
User prompt
Oyunumuza menü sayfası oluştur
User prompt
Lifeicon sahnenin sağ üstünde olsun
User prompt
Lifeicon özellikleri
User prompt
Life icon görselini sahnenin sağ üst köşesine koy
User prompt
Hayat kutularının sahenin sağ üst köşesine koy
User prompt
Hayat kutularını sahnenin orta noktasına yerleştir
User prompt
Can kutlarını sahnenin orta noktasına koy
User prompt
Karakterimiz kapluya değerse ekranda kırmızı ışık yansın
User prompt
Powerup kutusu özelliği geçene kadar kaplu spawn olmaz
User prompt
Her 10 saniyede bir duvar spawn olsun
User prompt
Düşmanlar kaplunun içinden geçemesin
User prompt
Duvarlar daha az spawn olsun
User prompt
Düşmanlarımız duvarların içinden geçemesin
User prompt
Kaplu duvarların içinden geçemesin
User prompt
Can haklarını gösteren 5 tane görsel asenti oluştur
/**** * Classes ****/ // Define a class for the down button var DownButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('downButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { LK.getSound('Kok').play(); // Play 'Kok' sound when button is pressed if (player.y + 100 <= 2732) { player.y += 100; // Check if player is intersecting with NewEnemy for (var i = 0; i < enemies.length; i++) { if (enemies[i] instanceof NewEnemy && player.intersects(enemies[i])) { LK.setScore(LK.getScore() + 10); // Increase score by 10 scoreTxt.setText(LK.getScore()); // Update the score text display break; // Exit loop after finding the first intersecting NewEnemy } } } }; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 2 + 1; // Random speed between 1 and 3 self.update = function () { self.x -= self.speed; // Move from right to left self.y += Math.sin(self.x / 150) * 15; // Further reduce vertical oscillation amplitude for (var k = walls.length - 1; k >= 0; k--) { if (self.intersects(walls[k])) { // If enemy intersects with a wall, adjust its position to prevent passing through if (self.x > walls[k].x) { self.x = walls[k].x + walls[k].width / 2 + enemyGraphics.width / 2; } else { self.x = walls[k].x - walls[k].width / 2 - enemyGraphics.width / 2; } } } if (self.y < 0) { self.y = 0; // Prevent moving above the top of the scene } if (self.x < -50) { self.destroy(); } }; }); var Flower = Container.expand(function () { var self = Container.call(this); var flowerGraphics = self.attachAsset('flower', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 3 + 2; // Random speed between 2 and 5 self.update = function () { self.y += self.speed; self.x += Math.sin(self.y / 100) * 20; // Increased sine wave amplitude flowerGraphics.rotation += 0.05; // Rotate the flower if (self.y > 2732) { self.destroy(); } }; }); var Kaplu = Container.expand(function () { var self = Container.call(this); var kapluGraphics = self.attachAsset('kaplu', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { self.x -= 5; // Move 'kaplu' from right to left faster for (var k = walls.length - 1; k >= 0; k--) { if (self.intersects(walls[k])) { // If 'kaplu' intersects with a wall, adjust its position to prevent passing through if (self.x > walls[k].x) { self.x = walls[k].x + walls[k].width / 2 + kapluGraphics.width / 2; } else { self.x = walls[k].x - walls[k].width / 2 - kapluGraphics.width / 2; } } } if (self.x < -kapluGraphics.width / 2) { self.destroy(); // Remove 'kaplu' when it goes off-screen } }; }); // Define a class for the left button var LeftButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('leftButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { LK.getSound('Kok').play(); // Play 'Kok' sound when button is pressed character.speedX = -moveSpeed; character.removeChild(character.children[0]); // Remove current player image character.attachAsset('leftImage', { // Change character image to 'leftImage' anchorX: 0.5, anchorY: 0.5 }); }; self.up = function (x, y, obj) { character.speedX = 0; character.removeChild(character.children[0]); // Remove current leftImage character.attachAsset('player', { // Revert character image to original anchorX: 0.5, anchorY: 0.5 }); }; }); var LifeIcon = Container.expand(function () { var self = Container.call(this); var lifeIconGraphics = self.attachAsset('lifeIcon', { anchorX: 0.5, anchorY: 0.5 }); self.updatePosition = function (index) { self.x = 50 + index * 60; // Position each icon with a gap self.y = 50; // Position at the top-left corner }; }); var MenuScreen = Container.expand(function () { var self = Container.call(this); var titleText = new Text2('Game Title', { size: 200, fill: 0xFFFFFF }); titleText.anchor.set(0.5, 0.5); titleText.x = 2048 / 2; titleText.y = 2732 / 2 - 200; self.addChild(titleText); var startButton = new Text2('Start Game', { size: 150, fill: 0x00FF00 }); startButton.anchor.set(0.5, 0.5); startButton.x = 2048 / 2; startButton.y = 2732 / 2 + 200; self.addChild(startButton); startButton.down = function () { self.destroy(); startGame(); }; // Add difficulty selection options var easyButton = new Text2('Easy', { size: 100, fill: 0x00FF00 }); easyButton.anchor.set(0.5, 0.5); easyButton.x = 2048 / 2 - 200; easyButton.y = 2732 / 2; self.addChild(easyButton); var mediumButton = new Text2('Medium', { size: 100, fill: 0xFFFF00 }); mediumButton.anchor.set(0.5, 0.5); mediumButton.x = 2048 / 2; mediumButton.y = 2732 / 2; self.addChild(mediumButton); var hardButton = new Text2('Hard', { size: 100, fill: 0xFF0000 }); hardButton.anchor.set(0.5, 0.5); hardButton.x = 2048 / 2 + 200; hardButton.y = 2732 / 2; self.addChild(hardButton); easyButton.down = function () { setDifficulty('easy'); }; mediumButton.down = function () { setDifficulty('medium'); }; hardButton.down = function () { setDifficulty('hard'); }; // Add game mode selection options var mode1Button = new Text2('Mode 1', { size: 100, fill: 0x00FF00 }); mode1Button.anchor.set(0.5, 0.5); mode1Button.x = 2048 / 2 - 200; mode1Button.y = 2732 / 2 + 100; self.addChild(mode1Button); var mode2Button = new Text2('Mode 2', { size: 100, fill: 0xFFFF00 }); mode2Button.anchor.set(0.5, 0.5); mode2Button.x = 2048 / 2; mode2Button.y = 2732 / 2 + 100; self.addChild(mode2Button); var mode3Button = new Text2('Mode 3', { size: 100, fill: 0xFF0000 }); mode3Button.anchor.set(0.5, 0.5); mode3Button.x = 2048 / 2 + 200; mode3Button.y = 2732 / 2 + 100; self.addChild(mode3Button); mode1Button.down = function () { setGameMode('mode1'); }; mode2Button.down = function () { setGameMode('mode2'); }; mode3Button.down = function () { setGameMode('mode3'); }; }); var NewEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 2 + 1; // Random speed between 1 and 3 self.update = function () { self.x -= self.speed; // Move from right to left self.y += Math.sin(self.x / 150) * 15; // Vertical oscillation for (var k = walls.length - 1; k >= 0; k--) { if (self.intersects(walls[k])) { // If NewEnemy intersects with a wall, adjust its position to prevent passing through if (self.x > walls[k].x) { self.x = walls[k].x + walls[k].width / 2 + enemyGraphics.width / 2; } else { self.x = walls[k].x - walls[k].width / 2 - enemyGraphics.width / 2; } } } if (self.y < 0) { self.y = 0; // Prevent moving above the top of the scene } if (self.x < -50) { self.destroy(); } }; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 15; self.isJumping = false; self.velocityY = 0; self.update = function () { // Check if the player is outside the scene boundaries if (self.isJumping) { if (self.lastY > self.y) { LK.getSound('Fly').play(); // Play 'Fly' sound when moving upwards } self.lastY = self.y; // Update lastY to current y position self.y -= self.velocityY; self.velocityY -= gravity; if (self.velocityY <= 0 && self.y < 1366) { self.x += 7; // Move right by 7 units at peak } if (self.y >= 1366) { self.y = 1366; self.isJumping = false; self.velocityY = 0; } // Prevent player from being pushed when touching the top of a wall for (var k = walls.length - 1; k >= 0; k--) { if (self.intersects(walls[k])) { if (self.y < walls[k].y - walls[k].height / 2) { self.y = walls[k].y - walls[k].height / 2; self.velocityY = 0; self.isJumping = false; } } } } // Check if the player touches the left edge of the screen if (self.x <= 0) { LK.effects.flashScreen(0xff0000, 1000); // Flash red light across the entire scene LK.showGameOver(); // End the game if the player touches the left edge } self.x += self.speedX; if (self.x > 2048 - playerGraphics.width / 2) { self.x = 2048 - playerGraphics.width / 2; // Prevent moving outside the right edge } if (!self.isJumping && self.speedX === 0) { self.y += Math.sin(LK.ticks / 20) * 5; // Increase oscillation amplitude for more movement } if (self.isJumping) { self.y -= self.velocityY; self.velocityY -= gravity; if (self.y >= 1366) { self.y = 1366; self.isJumping = false; self.velocityY = 0; } // Check if the player touches the top edge of the screen if (self.y <= 0) { LK.effects.flashScreen(0xff0000, 1000); // Flash red light across the entire scene LK.showGameOver(); // End the game if the player touches the top edge } } }; self.jump = function () { if (!self.isJumping && self.y > 0) { self.isJumping = true; self.velocityY = 20; // Set initial jump velocity self.speedX = 0; // Reset horizontal speed } }; }); // Define a class for the right button var RightButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('rightButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { LK.getSound('Kok').play(); // Play 'Kok' sound when button is pressed character.speedX = moveSpeed; character.removeChild(character.children[0]); // Remove current player image character.attachAsset('rightImage', { anchorX: 0.5, anchorY: 0.5 }); // Change character image to 'rightImage' character.y += 100; // Move character down by 100px }; self.up = function (x, y, obj) { character.speedX = 0; character.removeChild(character.children[0]); // Remove current rightImage character.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); // Revert character image to original }; }); var ScrollingBackground = Container.expand(function () { var self = Container.call(this); var bg1 = self.attachAsset('arkaplan', { anchorX: 0.5, anchorY: 0.5 }); var bg2 = self.attachAsset('arkaplan', { anchorX: 0.5, anchorY: 0.5 }); bg1.x = 2048 / 2; bg1.y = 2732 / 2; bg2.x = 2048 / 2 + 2048; bg2.y = 2732 / 2; self.update = function () { bg1.x -= 2; bg2.x -= 2; if (bg1.x < -2048 / 2) { bg1.x = bg2.x + 2048; } if (bg2.x < -2048 / 2) { bg2.x = bg1.x + 2048; } }; }); // Define a class for the sine wave enemy var SineWaveEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; // Constant speed self.amplitude = 50; // Amplitude of the sine wave self.frequency = 100; // Frequency of the sine wave self.update = function () { self.x -= self.speed; self.y += Math.sin(self.x / self.frequency) * self.amplitude; for (var k = walls.length - 1; k >= 0; k--) { if (self.intersects(walls[k])) { // If SineWaveEnemy intersects with a wall, adjust its position to prevent passing through if (self.x > walls[k].x) { self.x = walls[k].x + walls[k].width / 2 + enemyGraphics.width / 2; } else { self.x = walls[k].x - walls[k].width / 2 - enemyGraphics.width / 2; } } } if (self.x < -50) { self.destroy(); } }; }); // Define a class for the up button var UpButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('upButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { LK.getSound('Kok').play(); // Play 'Kok' sound when button is pressed player.jump(); }; }); var Wall = Container.expand(function () { var self = Container.call(this); var wallGraphics = self.attachAsset('wall', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; // Speed at which the wall moves from right to left self.update = function () { self.x -= self.speed; if (self.x < -wallGraphics.width) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Black background }); /**** * Game Code ****/ var menuScreen = game.addChild(new MenuScreen()); var gameStarted = false; // Track if the game has started // Override the game update function to prevent updates until the game starts var originalGameUpdate = game.update; game.update = function () { if (gameStarted) { originalGameUpdate.call(game); } }; // Modify the start button to set gameStarted to true menuScreen.children.forEach(function (child) { if (child instanceof Text2 && child.text === 'Start Game') { child.down = function () { menuScreen.destroy(); gameStarted = true; startGame(); }; } }); function setDifficulty(level) { switch (level) { case 'easy': enemySpawnInterval = 200; break; case 'medium': enemySpawnInterval = 120; break; case 'hard': enemySpawnInterval = 60; break; default: enemySpawnInterval = 160; } } function startGame() { // Initialize player at the center of the screen player.x = 1024; player.y = 1366; player.speedX = 0; player.speedY = 0; player.isJumping = false; player.velocityY = 0; // Initialize up button upButton.x = 2048 / 2 - 500; upButton.y = 2732 / 2 + 600; // Initialize left button leftButton.x = 300; leftButton.y = 2732 - 250; // Initialize right button rightButton.x = 2048 - 300; rightButton.y = 2732 - 250; // Initialize down button downButton.x = 2048 - 500 - 50; downButton.y = 2732 - 500 - 250; // Play background music when the game starts LK.playMusic('gameMusic', { volume: 0.8, loop: true }); } // Initialize player health with 5 lives // Define a class for managing player health var PlayerHealth = function PlayerHealth(initialLives) { this.lives = initialLives; this.decreaseLife = function () { this.lives--; if (this.lives <= 0) { LK.showGameOver(); // End the game if no lives are left } }; this.getLives = function () { return this.lives; }; }; var playerHealth = new PlayerHealth(5); // Create and display life icons var lifeIcons = []; for (var i = 0; i < playerHealth.getLives(); i++) { var lifeIcon = new LifeIcon(); lifeIcon.updatePosition(i); LK.gui.topLeft.addChild(lifeIcon); lifeIcons.push(lifeIcon); } // Update life icons when lives decrease playerHealth.decreaseLife = function () { this.lives--; if (this.lives <= 0) { LK.showGameOver(); // End the game if no lives are left } // Remove a life icon if (lifeIcons.length > 0) { var iconToRemove = lifeIcons.pop(); iconToRemove.destroy(); } }; LK.setInterval(createKaplu, 5000); // Spawn 'kaplu' every 5 seconds var walls = []; function spawnWall() { if (!powerUpActive) { var wall = new Wall(); wall.x = 2048 + wall.width / 2; // Start from the right edge of the screen wall.y = Math.random() * (2732 / 2 - wall.height) + wall.height / 2; // Random vertical position above the center game.addChild(wall); walls.push(wall); } } LK.setInterval(spawnWall, 10000); // Set interval to spawn walls every 10 seconds // Function to create sine wave enemies function createSineWaveEnemy() { var enemy = new SineWaveEnemy(); enemy.x = 2048; // Start from the right edge of the screen enemy.y = Math.random() * 2732; // Random vertical position game.addChild(enemy); enemies.push(enemy); } // Set interval to spawn sine wave enemies LK.setInterval(createSineWaveEnemy, 5000); // Spawn every 5 seconds // Function to create enemies with different types and behaviors function createEnemy() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "enemy"; var enemy; enemy = new Enemy(); enemy.x = 2048; // Start from the right edge of the screen enemy.y = Math.random() * (2732 - enemy.height) + enemy.height / 2; // Random vertical position within screen bounds game.addChild(enemy); enemies.push(enemy); } // Set intervals to spawn enemies LK.setInterval(function () { createEnemy("enemy"); // Normal enemy every 4 seconds }, 4000); // Function to spawn flowers on the screen function spawnFlowers() { // Number of flowers to spawn var flowerCount = LK.getScore() > 200 ? Math.floor(Math.random() * 1) + 1 : Math.floor(Math.random() * 3) + 2; for (var i = 0; i < flowerCount; i++) { // Create a new flower object var flower = new Flower(); // Set random initial position flower.x = Math.random() * 2048; // Random horizontal position flower.y = -50; // Start above the screen // Add flower to the game scene game.addChild(flower); } } // Call spawnFlowers at intervals LK.setInterval(spawnFlowers, 5000); // Spawn flowers every 5 seconds var scrollingBackground = game.addChild(new ScrollingBackground()); // Variable to track game over state var gameOver = false; // Play background music when the game starts LK.playMusic('gameMusic', { volume: 0.8, loop: true }); // Variable to track power-up states var powerUpActive = false; var powerUpCooldown = false; // Function to spawn a super power-up function spawnSuperPowerUp() { if (powerUpActive || powerUpCooldown) { return; } // Create a new power-up asset var powerUp = LK.getAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); // Random x position within the scene width var x = Math.random() * (2048 - 50); powerUp.x = x; powerUp.y = -60; // Start above the screen // Add power-up to the game scene game.addChild(powerUp); // Move the power-up downwards var fall = LK.setInterval(function () { powerUp.y += 4; powerUp.x += Math.sin(powerUp.y / 100) * 10; // Sine wave pattern // Remove power-up if it goes off-screen if (powerUp.y > 2732) { LK.clearInterval(fall); powerUp.destroy(); } // Check for collision with player if (player.intersects(powerUp)) { LK.clearInterval(fall); powerUp.destroy(); activateSuperPower(); } }, 16); } // Function to activate the super power function activateSuperPower() { if (powerUpActive) { return; } powerUpActive = true; // Temporarily increase flower spawn rate var originalFlowerInterval = 5000; var increasedFlowerInterval = originalFlowerInterval / 4; // 4x increase var flowerIntervalId = LK.setInterval(spawnFlowers, increasedFlowerInterval); // Revert flower spawn rate after 30 seconds LK.setTimeout(function () { LK.clearInterval(flowerIntervalId); LK.setInterval(spawnFlowers, originalFlowerInterval); }, 30000); powerUpCooldown = true; // Scale up the player player.scale.set(4); // Revert player scale after 30 seconds LK.setTimeout(function () { player.scale.set(1); powerUpActive = false; // Cooldown before another power-up can spawn LK.setTimeout(function () { powerUpCooldown = false; }, 60000); // Set to 1 minute if player collects the power-up }, 30000); } // Attempt to spawn a power-up every 40 seconds, ensuring only one is active at a time if (!powerUpActive && !powerUpCooldown) { LK.setTimeout(spawnSuperPowerUp, 40000); } // Array to hold spikes var spikes = []; // Function to create spikes function createSpikes() { var spikeHeight = 100; // Height of each spike var spikeWidth = 30; // Width of each spike var gap = 50; // Gap between spikes // Create fixed spikes on the left edge of the scene for (var y = 0; y < 2732; y += spikeHeight + gap) { var spike = LK.getAsset('spike', { anchorX: 0.5, anchorY: 0.5 }); // Spike starting position (fixed to the left edge) var startX = -spikeWidth; // Left edge var startY = y; // Arranged with gap between them spike.x = startX; spike.y = startY; // Add spikes to the game scene game.addChild(spike); // Add spike object to the array spikes.push(spike); } } // Create spikes (only run once) createSpikes(); // Create and initialize the score text display var scoreTxt = new Text2('0', { size: 200, // Increased size fill: 0x000000 // Black color for the score text }); // Set the initial score text to zero scoreTxt.setText(LK.getScore()); // Center the score text horizontally at the top of the screen scoreTxt.anchor.set(0.5, 0); // Anchor at the center of the top edge // Add the score text to the GUI overlay at the top-center position LK.gui.top.addChild(scoreTxt); var moveSpeed = 5; // Speed for character movement var gravity = 0.8; // Decrease gravity for a lighter effect var windSpeed = 2; // Reduce wind speed for horizontal movement // Initialize player at the center of the screen var player = game.addChild(new Player()); var character = player; // Define character as a reference to player player.x = 1024; player.y = 1366; player.speedX = 0; // Prevent movement on spawn player.speedY = 0; // Prevent movement on spawn player.isJumping = false; player.velocityY = 0; // Initialize up button var upButton = game.addChild(new UpButton()); upButton.x = 2048 / 2 - 500; // Middle point's x coordinate minus button width upButton.y = 2732 / 2 + 600; // Middle point's y coordinate plus button height plus additional 100 pixels // Add scaling effect to the up button when pressed and released upButton.down = function () { upButton.scale.set(0.9); // Scale down by 10% }; upButton.up = function () { upButton.scale.set(1); // Reset to original size }; upButton.move = function () { upButton.scale.set(1); // Reset to original size if mouse leaves }; // Initialize left button var leftButton = game.addChild(new LeftButton()); leftButton.x = 300; // Move slightly more to the right leftButton.y = 2732 - 250; // Move slightly more upwards // Initialize right button var rightButton = game.addChild(new RightButton()); rightButton.x = 2048 - 300; // Move slightly more to the left rightButton.y = 2732 - 250; // Move slightly more upwards // Initialize down button var downButton = game.addChild(new DownButton()); downButton.x = 2048 - 500 - 50; // Right edge minus button width and margin downButton.y = 2732 - 500 - 250; // Move the down button slightly more upwards // Initialize enemies var enemies = []; var enemySpawnInterval = 160; // Initial slower spawn rate for the first 30 seconds var enemySpawnIncreaseInterval = 40000; // Increase spawn rate every 40 seconds var enemySpawnCounter = 0; // Variables to track button presses var isPressingUp = false; var isPressingDown = false; // Event listeners for button presses upButton.down = function () { isPressingUp = true; character.removeChild(character.children[0]); // Remove current player image character.attachAsset('playerup', { anchorX: 0.5, anchorY: 0.5 }); // Change character image to 'up' }; upButton.up = function () { isPressingUp = false; character.removeChild(character.children[0]); // Remove current playerup image character.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); // Revert character image to original }; downButton.down = function () { isPressingDown = true; character.removeChild(character.children[0]); // Remove current player image character.attachAsset('player_down', { anchorX: 0.5, anchorY: 0.5 }); // Change character image to 'dow' character.y += 50; // Move character down by 50px character.x += 160; // Move character right by 160px }; downButton.up = function () { isPressingDown = false; character.removeChild(character.children[0]); // Remove current player_down image character.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); // Revert character image to original character.y -= 50; // Move character back to original position }; // Update player movement based on button presses function updatePlayerMovement() { if (isPressingUp) { player.velocityY = -20; // Increase upward speed player.x += 8; // Move right by 8 units } // Removed upward movement when the down button is pressed player.y += player.velocityY; if (!isPressingUp && !isPressingDown) { player.velocityY += gravity; } if (player.y > 1366) { player.y = 1366; player.velocityY = 0; } if (player.y < 0) { player.y = 0; player.velocityY = 0; } } // Set interval for updating player movement LK.setInterval(updatePlayerMovement, 16); // Set interval to increase enemy spawn rate LK.setInterval(function () { if (enemySpawnInterval > 20) { // Ensure a minimum spawn interval enemySpawnInterval -= 10; // Decrease interval to increase spawn rate } }, enemySpawnIncreaseInterval); // Set interval for updating player movement LK.setInterval(function () { player.update(); }, 16); // Handle game updates game.update = function () { player.update(); scrollingBackground.update(); for (var k = walls.length - 1; k >= 0; k--) { walls[k].update(); if (player.intersects(walls[k])) { // Allow player to approach walls without collision if (player.x > walls[k].x) { if (player.x < walls[k].x + walls[k].width / 2 + player.width / 2 - 5) { player.x = walls[k].x + walls[k].width / 2 + player.width / 2 - 5; } } else { if (player.x > walls[k].x - walls[k].width / 2 - player.width / 2 + 5) { player.x = walls[k].x - walls[k].width / 2 - player.width / 2 + 5; } } // Do not trigger game over when intersecting with walls } } for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Flower) { var flower = game.children[i]; flower.update(); if (player.intersects(flower)) { flower.destroy(); // Remove flower from the scene LK.setScore(LK.getScore() + 1); // Increase score by 1 scoreTxt.setText(LK.getScore()); // Update the score text display } } } // Check if the player is completely out of the scene if (player.x < -player.width || player.x > 2048 + player.width || player.y < -player.height || player.y > 2732 + player.height) { LK.showGameOver(); // End the game if the player is completely out of bounds } player.x -= windSpeed; // Apply wind effect to move player left // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval * 6 && !powerUpActive) { if (LK.ticks >= 1800) { // 30 seconds * 60 FPS enemySpawnInterval = 80; // Increase spawn rate after 30 seconds } if (enemySpawnCounter % 2 === 0) { // Introduce a delay between spawns return; } // Increase interval to reduce new enemy spawn rate var enemy = new Enemy(); enemy.x = 2048; // Spawn from the right edge of the screen enemy.y = Math.random() * (2732 / 2) + 100; // Random y position slightly lower from the top half of the screen enemies.push(enemy); game.addChild(enemy); enemySpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.getSound('Kick').play(); // Play 'Kick' sound when player intersects with an enemy if (enemies[j] instanceof NewEnemy) { LK.effects.flashScreen(0xff0000, 1000); // Flash red light across the entire scene if (LK.ticks >= 3600) { // 60 seconds * 60 FPS LK.setScore(LK.getScore() - 10); // Decrease score by 10 after 60 seconds } else { LK.setScore(LK.getScore() - 3); // Decrease score by 3 for newEnemy } if (LK.getScore() < 0) { LK.getSound('End').play(); // Play 'End' sound LK.showGameOver(); // End the game if the score goes below zero } } else { LK.setScore(LK.getScore() + 2); // Increase score by 2 for regular enemies } enemies[j].destroy(); // Remove enemy from the scene enemies.splice(j, 1); // Remove enemy from the array scoreTxt.setText(LK.getScore()); // Update the score text display if (LK.getScore() % 20 === 0) { LK.effects.flashScreen(0x00FF00, 500); // Flash green on screen for 0.5 seconds enemySpawnInterval = Math.max(20, enemySpawnInterval - 10); // Increase spawn rate by decreasing interval } if (LK.getScore() >= 40) { enemySpawnInterval = Math.max(10, enemySpawnInterval - 5); // Further increase spawn rate when score is 40 or more } } } for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Kaplu) { var kaplu = game.children[i]; kaplu.update(); if (player.intersects(kaplu)) { LK.effects.flashScreen(0xff0000, 1000); // Flash red light across the entire scene LK.setScore(LK.getScore() - 5); // Decrease score by 5 scoreTxt.setText(LK.getScore()); // Update the score text display playerHealth.decreaseLife(); // Decrease player health by 1 kaplu.destroy(); // Remove 'kaplu' from the scene } } } }; // Handle player movement with touch game.down = function (x, y, obj) { if (y < 1366) { // Check if the touch is in the upper half player.x = x; player.y = y; } }; game.move = function (x, y, obj) { if (y < 1366) { // Check if the touch is in the upper half player.x = x; player.y = y; } }; function createKaplu() { if (!powerUpActive) { var kaplu = new Kaplu(); kaplu.x = 2048 + kaplu.width / 2; // Start from the right edge of the screen kaplu.y = Math.random() * (2732 / 2 - kaplu.height) + kaplu.height / 2; // Random vertical position above the center game.addChild(kaplu); } }
===================================================================
--- original.js
+++ change.js
@@ -184,8 +184,42 @@
};
hardButton.down = function () {
setDifficulty('hard');
};
+ // Add game mode selection options
+ var mode1Button = new Text2('Mode 1', {
+ size: 100,
+ fill: 0x00FF00
+ });
+ mode1Button.anchor.set(0.5, 0.5);
+ mode1Button.x = 2048 / 2 - 200;
+ mode1Button.y = 2732 / 2 + 100;
+ self.addChild(mode1Button);
+ var mode2Button = new Text2('Mode 2', {
+ size: 100,
+ fill: 0xFFFF00
+ });
+ mode2Button.anchor.set(0.5, 0.5);
+ mode2Button.x = 2048 / 2;
+ mode2Button.y = 2732 / 2 + 100;
+ self.addChild(mode2Button);
+ var mode3Button = new Text2('Mode 3', {
+ size: 100,
+ fill: 0xFF0000
+ });
+ mode3Button.anchor.set(0.5, 0.5);
+ mode3Button.x = 2048 / 2 + 200;
+ mode3Button.y = 2732 / 2 + 100;
+ self.addChild(mode3Button);
+ mode1Button.down = function () {
+ setGameMode('mode1');
+ };
+ mode2Button.down = function () {
+ setGameMode('mode2');
+ };
+ mode3Button.down = function () {
+ setGameMode('mode3');
+ };
});
var NewEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {