User prompt
oyuna müzik sesi ekle
User prompt
skor 5 ve katları olarak artıkça düşmanların hızı da %10 artsın
User prompt
skor 10 ve katları olarak artıkça düşmanların hızı da %5 artsın
User prompt
backgraund2 sabit kalsın backgraund assetini çoğalt ve hareket etsin
User prompt
backgraund2 sabit kalsın backgraund assetini kopyala ve hareket etsin
User prompt
sadece backgraund asseti hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please save this source code
User prompt
sadece backgraun asseti kopyala ve yavaşça hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
backgranun du aynala ve hareket etsin
User prompt
backgraund2 yi ekranın altına taşı
Code edit (2 edits merged)
Please save this source code
User prompt
bir başka backgraund asseti ekle ve y ekseninin akt yarısını kaplasın
User prompt
2 bir backgran ekle ve y eksenini alt yarını kaplasın
User prompt
bakcgraun asseti y ekseninin yarısını kaplasın
Code edit (1 edits merged)
Please save this source code
User prompt
backgraundu y eksenin ortasından böl ve asset ekle
User prompt
+1 yazısını büyüt ve renkleri rastgele olsun
User prompt
karakter düşmanları geçtikten sonra +1 olarak üzerinde yazı cıksın
User prompt
if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); var randomMessage = getRandomMessage(gameOverMessages); LK.showGameOver(randomMessage); }
User prompt
graund asseti ni y eksenini sonuna kadar uzat
User prompt
karkaterin başlangıç pozisyonunun altıdan başlayan bir asset ekle
User prompt
çoğaltılan arkaplanı kaldır ve hareketi durdur
User prompt
karakterin ve düşmanları y ekseninde %3 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %20 aşağı taşı
/**** * Classes ****/ // 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 = 5; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for floating text that appears and fades away var FloatingText = Container.expand(function () { var self = Container.call(this); // Generate random color for the text var randomColor = Math.floor(Math.random() * 0xFFFFFF); var text = new Text2('+1', { size: 120, // Increased text size from 60 to 120 fill: randomColor // Random color instead of fixed yellow }); text.anchor.set(0.5, 0.5); self.addChild(text); self.lifetime = 0; self.maxLifetime = 60; // 1 second at 60fps self.velocityY = -3; // Move upward self.update = function () { self.lifetime++; self.y += self.velocityY; // Fade out as lifetime increases self.alpha = 1 - self.lifetime / self.maxLifetime; // Remove when lifetime is over if (self.lifetime >= self.maxLifetime) { self.destroy(); } }; return self; }); // Define a class for flying enemies var FlyingEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('flyingEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 7; self.amplitude = 100; self.frequency = 0.03; self.initialY = 0; self.angle = Math.random() * Math.PI * 2; self.passed = false; self.update = function () { self.x -= self.speed; self.y = self.initialY + Math.sin(self.angle) * self.amplitude; self.angle += self.frequency; if (self.x < -100) { self.destroy(); } }; return self; }); // Define a class for plant enemies var PlantEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('plantEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.passed = false; self.canJump = true; self.jumpInterval = Math.floor(Math.random() * 100) + 50; self.jumpCounter = 0; self.velocityY = 0; self.isJumping = false; self.update = function () { self.x -= self.speed; // Jump logic self.jumpCounter++; if (self.jumpCounter >= self.jumpInterval && self.canJump && !self.isJumping) { self.isJumping = true; self.velocityY = -15; self.jumpCounter = 0; } if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.6; if (self.y >= 2732 / 2) { self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } if (self.x < -100) { self.destroy(); } }; return self; }); //<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 = 25; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.3; // Decreased gravity effect by 30% if (self.y >= 2732 / 2) { // Ground level self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // Play background music LK.playMusic('school'); var background = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0 })); background.x = 0; background.y = 0; var background2 = game.addChild(LK.getAsset('background2', { anchorX: 0, anchorY: 0 })); background2.x = 0; background2.y = 2732 - background2.height; // Position at the bottom of the screen // Initialize player var player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2732 / 2; // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; var lastEnemyType = -1; // Track the last enemy type that was spawned var sameTypeCount = 0; // Counter for consecutive same-type enemies var canSpawn = true; // Flag to control enemy spawning var lastScoreCheckpoint = 0; // Track the last score milestone for speed increases var speedMultiplier = 1.0; // Base speed multiplier // Create a new Text2 object to display the score var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top center of the screen LK.gui.top.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 0; // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval && canSpawn) { // Check if any enemies are at the screen edge (about to enter) var enemiesEnteringScreen = false; for (var i = 0; i < enemies.length; i++) { if (enemies[i].x >= 2048 - 300) { // Buffer zone at screen edge enemiesEnteringScreen = true; break; } } if (!enemiesEnteringScreen) { // Randomly choose enemy type var enemyType = Math.floor(Math.random() * 3); // Check if we need to avoid the same enemy type if (enemyType === lastEnemyType) { sameTypeCount++; // If we already have 2 of the same type, choose a different type if (sameTypeCount >= 2) { do { enemyType = Math.floor(Math.random() * 3); } while (enemyType === lastEnemyType); sameTypeCount = 0; } } else { sameTypeCount = 0; } var enemy; if (enemyType === 0) { enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2; enemy.speed *= speedMultiplier; } else if (enemyType === 1) { enemy = new FlyingEnemy(); enemy.x = 2048; enemy.y = 2732 / 3; // Flying enemy starts higher enemy.initialY = enemy.y; enemy.speed *= speedMultiplier; } else { enemy = new PlantEnemy(); enemy.x = 2048; enemy.y = 2732 / 2; enemy.speed *= speedMultiplier; } // Save the current enemy type as the last one lastEnemyType = enemyType; enemy.passedMiddle = false; // Initialize the middle crossing property enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; // Prevent new enemies from spawning until current one crosses the middle canSpawn = false; } } // Update floating text elements for (var k = game.children.length - 1; k >= 0; k--) { if (game.children[k] instanceof FloatingText) { game.children[k].update(); } } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); // Check if enemy has just crossed the middle of the screen if (enemies[j].x < 2048 / 2 && !enemies[j].passedMiddle) { enemies[j].passedMiddle = true; // Allow new enemy to spawn when current enemy passes the middle canSpawn = true; } if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText(LK.getScore()); // Check if score is a multiple of 5 and increase speed var currentScore = LK.getScore(); if (currentScore % 5 === 0 && currentScore > lastScoreCheckpoint) { lastScoreCheckpoint = currentScore; speedMultiplier *= 1.1; // Increase speed by 10% console.log("Speed increased! New multiplier: " + speedMultiplier); } // Create floating +1 text var floatingText = new FloatingText(); floatingText.x = player.x; floatingText.y = player.y - 100; game.addChild(floatingText); } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -145,8 +145,10 @@
/****
* Game Code
****/
+// Play background music
+LK.playMusic('school');
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0
}));