User prompt
const upButton = document.getElementById('upButton'); // Başlangıç boyutu let originalButtonSize = 1; // Yukarı butonuna tıklama durumu upButton.addEventListener('mousedown', () => { // %10 küçült upButton.style.transform = 'scale(0.9)'; }); // Buton bırakıldığında eski boyutuna dönsün upButton.addEventListener('mouseup', () => { upButton.style.transform = `scale(${originalButtonSize})`; }); // Eğer fare butonundan ya da dokunmatik ekranla çıkarsa upButton.addEventListener('mouseleave', () => { upButton.style.transform = `scale(${originalButtonSize})`; }); Kodu ekle
User prompt
const character = document.getElementById('character'); const upButton = document.getElementById('upButton'); // Başlangıç boyutu let originalSize = 1; // Yukarı butonuna tıklama durumu upButton.addEventListener('mousedown', () => { // %10 küçült character.style.transform = 'scale(0.9)'; }); // Buton bırakıldığında eski boyutuna dönsün upButton.addEventListener('mouseup', () => { character.style.transform = `scale(${originalSize})`; }); // Eğer fare butonundan ya da dokunmatik ekranla çıkarsa upButton.addEventListener('mouseleave', () => { character.style.transform = `scale(${originalSize})`; }); Kodu ekle
User prompt
const character = document.getElementById('character'); const upButton = document.getElementById('upButton'); // Başlangıç boyutu let originalSize = 1; // Yukarı butonuna tıklama durumu upButton.addEventListener('mousedown', () => { // %10 küçült character.style.transform = 'scale(0.9)'; }); // Buton bırakıldığında eski boyutuna dönsün upButton.addEventListener('mouseup', () => { character.style.transform = `scale(${originalSize})`; }); // Eğer fare butonundan ya da dokunmatik ekranla çıkarsa upButton.addEventListener('mouseleave', () => { character.style.transform = `scale(${originalSize})`; }); Kodu ekle
User prompt
Düşmanlar daha hızlı
User prompt
let score = 0; let gameOver = false; function checkEnemiesOutOfBounds() { const enemies = document.querySelectorAll('.enemy'); enemies.forEach(enemy => { const e = enemy.getBoundingClientRect(); const sceneBounds = scene.getBoundingClientRect(); // Düşman sol kenara değerse -5 puan silinir if (e.left <= sceneBounds.left) { score -= 5; updateScore(); enemy.remove(); // Sahneden silinir } // Eğer toplam puan 5'ten küçükse oyun biter if (score < 5 && !gameOver) { endGame(); } }); } function updateScore() { const scoreboard = document.getElementById('scoreDisplay'); if (scoreboard) { scoreboard.textContent = `Score: ${score}`; } } function endGame() { gameOver = true; alert("Game Over! Your score is less than 5."); // Oyun döngüsünü durdur, sahne sıfırlanabilir // cancelAnimationFrame / clearInterval gibi işlemler burada yapılır } // Sürekli kontrol et (örnek olarak 200ms'de bir) setInterval(checkEnemiesOutOfBounds, 200); Koda ekle
User prompt
let score = 0; function checkEnemiesOutOfBounds() { const enemies = document.querySelectorAll('.enemy'); enemies.forEach(enemy => { const e = enemy.getBoundingClientRect(); const sceneBounds = scene.getBoundingClientRect(); // Sahnenin alt kısmını kontrol et, yukarıdan çıkmasına izin ver (sadece aşağıya çıktığında -5 puan) if (e.bottom > sceneBounds.bottom) { // Sahneden tamamen aşağıya çıktıysa -5 puan score -= 5; updateScore(); enemy.remove(); // Sahneden silinir } }); } function updateScore() { const scoreboard = document.getElementById('scoreDisplay'); if (scoreboard) { scoreboard.textContent = `Score: ${score}`; } } // Sürekli kontrol et (örnek olarak 200ms'de bir) setInterval(checkEnemiesOutOfBounds, 200); Kodu ekle
User prompt
let score = 0; function checkEnemiesOutOfBounds() { const enemies = document.querySelectorAll('.enemy'); enemies.forEach(enemy => { const e = enemy.getBoundingClientRect(); const sceneBounds = scene.getBoundingClientRect(); if (e.right < sceneBounds.left || e.left > sceneBounds.right || e.top > sceneBounds.bottom || e.bottom < sceneBounds.top) { // Sahneden tamamen çıktıysa -5 puan score -= 5; updateScore(); enemy.remove(); // sahneden silinir } }); } function updateScore() { const scoreboard = document.getElementById('scoreDisplay'); if (scoreboard) { scoreboard.textContent = `Score: ${score}`; } } // Sürekli kontrol et (örnek olarak 200ms'de bir) setInterval(checkEnemiesOutOfBounds, 200); Kodu ekle
User prompt
Düşmanlar sahnenin dışına çıkarsa toplam puana (-1) eklenir
User prompt
Düşmanlar sahnenin dışına çıkarsa 1 puan eksilir
User prompt
Düşmanlar sahnenin dışına çıkarsa puanımız 1 tane azalır
User prompt
Karakterimiz sahnenin sağ ve sol kenarına değerse oyun biter
User prompt
Karakterimiz sahnenin üst kenarına değerse oyun biter
User prompt
Karakterimiz sahnenin dışına çıkarsa oyun biter
User prompt
Bulutların karakterimizi algılama alanını 4 kat azalt
User prompt
Karakterimiz bulutlara değerse oyun biter fakat süper gücü varken bitmez
User prompt
Algılama seviyelerini azalt
User prompt
let gameOver = false; function checkDeathCollision() { if (gameOver) return; const c = character.getBoundingClientRect(); const spikes = document.querySelectorAll('.spike'); const clouds = document.querySelectorAll('.cloud'); for (let spike of spikes) { const s = spike.getBoundingClientRect(); if (isColliding(c, s)) { endGame("spike"); return; } } for (let cloud of clouds) { const cl = cloud.getBoundingClientRect(); if (isColliding(c, cl)) { endGame("cloud"); return; } } } function isColliding(a, b) { return !(a.right < b.left || a.left > b.right || a.bottom < b.top || a.top > b.bottom); } function endGame(reason) { gameOver = true; alert("Game Over! Reason: " + reason); // Oyun döngüsünü durdur, sahne sıfırlanabilir // cancelAnimationFrame / clearInterval gibi işlemler burada yapılır } // Sürekli çarpışma kontrolü function gameLoop() { if (!gameOver) { checkDeathCollision(); requestAnimationFrame(gameLoop); } } gameLoop(); Kodu ekle
User prompt
Süper kutu aşağıya sinüs eğrisi çizerek iner
User prompt
Düşmanların her 40 saniyede bir gelme sayısı artar
User prompt
Karakterimiz kutuyu algılarsa sonraki kutu 1 dakika sonra gelir
User prompt
Kutular her 40 saniyede bir tane olmak üzere gelir
User prompt
Kutular sadece 10 saniyede bir bir tane gelir
User prompt
const character = document.getElementById('character'); const scene = document.getElementById('gameScene'); let powerUpActive = false; let powerUpCooldown = false; function spawnSuperPowerUp() { if (powerUpActive || powerUpCooldown) return; const box = document.createElement('div'); box.className = 'superPowerUp'; const x = Math.random() * (scene.clientWidth - 50); box.style.left = `${x}px`; box.style.top = `-60px`; scene.appendChild(box); let y = -60; const fall = setInterval(() => { y += 4; box.style.top = `${y}px`; if (y > scene.clientHeight) { clearInterval(fall); box.remove(); } if (checkCollision(box)) { clearInterval(fall); box.remove(); activateSuperPower(); } }, 16); } function checkCollision(box) { const c = character.getBoundingClientRect(); const b = box.getBoundingClientRect(); return !(c.right < b.left || c.left > b.right || c.bottom < b.top || c.top > b.bottom); } function activateSuperPower() { if (powerUpActive) return; powerUpActive = true; powerUpCooldown = true; character.style.transform = 'scale(4)'; setTimeout(() => { character.style.transform = 'scale(1)'; powerUpActive = false; // Yeni kutu gelmesi 30 saniye engellenir setTimeout(() => { powerUpCooldown = false; }, 30000); }, 30000); } // Her 10 saniyede bir kutu yaratmayı dene setInterval(spawnSuperPowerUp, 10000); Kodu ekle
User prompt
Sadece bir tane power up kutusu gelir tek bir tane
User prompt
Her 10 saniyede bir bir tane power up kutusu gelir
/**** * 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) { if (player.y + 100 <= 2732) { player.y += 100; } }; }); // 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; self.y += Math.sin(self.x / 100) * 10; // Sine wave pattern 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.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732 || self.y <= 0) { LK.showGameOver(); // End the game if the player is out of bounds } if (self.isJumping) { 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; } } self.x += self.speedX; if (self.isJumping) { self.y -= self.velocityY; self.velocityY -= gravity; if (self.y >= 1366) { self.y = 1366; self.isJumping = false; self.velocityY = 0; } } }; 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 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) { player.jump(); }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // 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; 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(); var clouds = []; // Function to create a cloud function createCloud() { // Create a new cloud asset var cloud = LK.getAsset('cloud', { anchorX: 0.5, anchorY: 0.5 }); // Cloud starting position (from the right) var startX = 2048 + 100; // Cloud starts from the right var startY = Math.random() * 200; // Random height (upper part) cloud.x = startX; cloud.y = startY; // Add cloud to the game scene game.addChild(cloud); // Start moving the cloud moveCloud(cloud); // Add cloud object to the array clouds.push(cloud); } // Function to move the cloud to the left function moveCloud(cloud) { var speed = 1; // Cloud movement speed LK.setInterval(function () { // Cloud moves to the left cloud.x -= speed; // If the cloud reaches the left edge of the screen, remove it if (cloud.x < -100) { // When the cloud is completely off-screen cloud.destroy(); // Remove the cloud clouds.splice(clouds.indexOf(cloud), 1); // Remove from array } }, 16); // Update every 16ms for 60 FPS } // Create new clouds at intervals LK.setInterval(createCloud, 3000); // Add a new cloud every 3 seconds // 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 gravity = 0.5; var windSpeed = 2; // Define wind speed for horizontal movement // Initialize player at the center of the screen var player = game.addChild(new 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 // 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 - 50; // Bottom edge minus button height and margin // Initialize enemies var enemies = []; var enemySpawnInterval = 200; 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; }; upButton.up = function () { isPressingUp = false; }; downButton.down = function () { isPressingDown = true; }; downButton.up = function () { isPressingDown = false; }; // Update player movement based on button presses function updatePlayerMovement() { if (isPressingUp) { player.velocityY = -10; player.x += 2; // Move right slowly by 2 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(); player.x -= windSpeed; // Apply wind effect to move player left // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { 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])) { enemies[j].destroy(); // Remove enemy from the scene enemies.splice(j, 1); // Remove enemy from the array LK.setScore(LK.getScore() + 1); // Increase score by 1 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 } } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -43,9 +43,9 @@
self.isJumping = false;
self.velocityY = 0;
self.update = function () {
// Check if the player is outside the scene boundaries
- if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) {
+ if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732 || self.y <= 0) {
LK.showGameOver(); // End the game if the player is out of bounds
}
if (self.isJumping) {
self.y -= self.velocityY;