User prompt
patlama2 efekti her hit te çalışsın
User prompt
enemy7 dahaaz gelsin
User prompt
expolision sadece enemyler yok olduğunda gözüksün
User prompt
yeni bir enemy ve assest i ekle
User prompt
ekrandaki yazılan boyutlarını %50 azlat
User prompt
arka plan müzigi ekle süresi dolunca tekrara baştan başlat
User prompt
arkaplan müzigini kaldır
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'body')' in or related to this line: 'if (document.body) {' Line Number: 216
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'body')' in or related to this line: 'document.body.style.cursor = 'none'; // Hide the mouse cursor' Line Number: 216
User prompt
mouse cursor gözükmesin
User prompt
iki arkaplanda karakterle ters yönlere hareket etsinler
User prompt
interaktif arka planların görünürlülüğümü %50 azalt
User prompt
yyeni eklenen interaktif arka planda player hareketerinin tersine hareket etsin
User prompt
mevcut interaktif arka plandan bağımsı olarak aynı özelliklerde başka bir interaktif arka plan ve assets ini ekle
User prompt
mevcut interaktif arka plandan bağımsı olarak aynı özelliklerde başka bir interaktif arka plan daha ekle
User prompt
level değiştikten sonra düşman sıklığını %50 arttır
User prompt
level geçişlerindeki düşman sıklıgını ve hızını%50 azalt
User prompt
level geçişlerinmde ki düşman sıklığını %30 azalt
User prompt
level geçişlerinmde ki düşman sıklığını %15 azalt
User prompt
enemy5 tek vuruşta yok olsun
User prompt
level geçişlerinde ki düşman sıklık hızını %25 daha arttır
User prompt
enemy ye patlama2 ses efektini ver
User prompt
oyun bitince ekrada GAME OVER yazsın ve altında oyun bittiginde son score yazsın
User prompt
enemy6 geldikten sonra en az 5 saniye asla gelmesin sonrasında gene rastgele gelsin
User prompt
oyuna 8 can ile başlansın
/**** * Classes ****/ // Define the BackgroundObject class var BackgroundObject = Container.expand(function () { var self = Container.call(this); var bgObjectGraphics = self.attachAsset('bgObject', { anchorX: 0.5, anchorY: 0.5, alpha: 0.5 // Reduce visibility to 50% }); self.speed = (Math.random() * 5 + 2) * 1.5; // Increase speed by 50% self.update = function () { self.y += self.speed; if (self.y > 2732) { self.y = -50; // Reset position to top once it goes off screen self.x = Math.random() * 2048; // Randomize x position } }; }); // Define the BackgroundObject2 class var BackgroundObject2 = Container.expand(function () { var self = Container.call(this); var bgObjectGraphics = self.attachAsset('bgObject2', { anchorX: 0.5, anchorY: 0.5, alpha: 0.5 // Reduce visibility to 50% }); self.speed = (Math.random() * 5 + 2) * 1.5; // Increase speed by 50% self.update = function () { self.y += self.speed; if (self.y > 2732) { self.y = -50; // Reset position to top once it goes off screen self.x = Math.random() * 2048; // Randomize x position } }; }); // Define the Bullet class var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -15; self.update = function () { self.y += self.speed; }; }); // Define the Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.rotationSpeed = Math.random() * 0.1 - 0.05; self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); var Enemy2 = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy2', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.rotationSpeed = Math.random() * 0.1 - 0.05; self.hits = 0; // Track the number of hits self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); // Define the FastEnemy class var FastEnemy = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy3', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 6.5; // 30% faster than regular enemies self.rotationSpeed = Math.random() * 0.1 - 0.05; self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); var FireRateEnemy = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy4', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.rotationSpeed = Math.random() * 0.1 - 0.05; self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); var NewEnemy = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy5', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.rotationSpeed = Math.random() * 0.1 - 0.05; self.hits = 0; // Track the number of hits self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); var NewEnemy6 = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy6', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.rotationSpeed = Math.random() * 0.1 - 0.05; self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); var NewEnemy7 = Container.expand(function () { var self = Container.call(this); var size = Math.random() * 100 + 100; var enemyGraphics = self.attachAsset('enemy7', { width: size, height: size, anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; // Slightly slower than other enemies self.rotationSpeed = Math.random() * 0.1 - 0.05; self.hits = 0; // Track the number of hits self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; }); //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // Define the Player class var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { // Player movement logic will be handled in game.down and game.move // Shooting logic if (LK.ticks - lastShot >= fireRate * 60) { var bullet = new Bullet(); bullet.x = self.x; bullet.y = self.y; bullets.push(bullet); game.addChild(bullet); lastShot = LK.ticks; } }; }); // Define the Wall class var Wall = Container.expand(function () { var self = Container.call(this); var wallGraphics = self.attachAsset('levelBar', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Walls are static, no update logic needed }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ var canSpawnNewEnemy6 = true; if (typeof document !== 'undefined' && document.body) { document.body.style.cursor = 'none'; // Hide the mouse cursor } // Play background music and ensure it restarts when it finishes LK.playMusic('backmusic', { loop: true }); // New enemy asset // Initialize variables var player; var enemies = []; var bullets = []; var score = 0; var lives = 8; var level = 1; var levelText; var scoreText; var livesText; var enemySpeedMultiplier = 1; var enemySpawnRate = 1000; var enemySpawnTimer; // Function to start a new level function startLevel() { var gainedFeaturesText = 'LEVEL ' + level; // Initialize the text with the level number levelText.setText(gainedFeaturesText); // Set the level text levelText.setStyle({ fontSize: 50 }); // Reduce font size for gained features text levelText.anchor.set(0.5, 0.5); // Center the text on the screen levelText.visible = true; fireRate *= 0.997; // Reduce fire rate by 0.3% when transitioning to a new level // Declare heartAsset in the correct scope var heartAsset; // Display a heart asset at the top center and add 2 lives if (level > 1) { heartAsset = LK.getAsset('powerUpRed', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1100 }); game.addChild(heartAsset); } // Add 2 lives lives += 2; livesText.setText('Lives: ' + lives); // Remove the heart asset after a short duration LK.setTimeout(function () { if (heartAsset) { heartAsset.destroy(); } }, 2000); // Increase enemy speed and spawn rate by 5% each level enemySpeedMultiplier = 1.04 * Math.pow(1.04, level - 1); enemySpawnRate *= 0.95; // Increase background object speed by 10% each level backgroundObjects.forEach(function (bgObject) { bgObject.speed *= 1.10; }); LK.setTimeout(function () { levelText.visible = false; spawnEnemies(); }, 4000); } // Function to spawn enemies function spawnEnemies() { enemySpawnTimer = LK.setInterval(function () { var enemy; if (Math.random() < 0.1) { enemy = new FastEnemy(); enemy.speed *= 1.5; // Increase speed by 50% } else if (Math.random() < 0.05) { // 5% chance to spawn the new FireRateEnemy enemy = new FireRateEnemy(); } else if (canSpawnNewEnemy6 && Math.random() < 0.05) { // 5% chance to spawn NewEnemy6 enemy = new NewEnemy6(); canSpawnNewEnemy6 = false; LK.setTimeout(function () { canSpawnNewEnemy6 = true; }, 5000); } else if (level > 1 && Math.random() < 0.2) { // 20% chance to spawn the new enemy type after level 1 enemy = new Enemy2(); } else if (Math.random() < 0.05) { // 5% chance to spawn the new enemy type enemy = new NewEnemy7(); } else if (Math.random() < 0.15) { // 15% chance to spawn the new enemy type in all levels enemy = new NewEnemy(); } else { enemy = new Enemy(); } enemy.x = Math.random() * 2048; enemy.y = -50; enemy.speed *= enemySpeedMultiplier; enemies.push(enemy); game.addChild(enemy); }, enemySpawnRate); } // Function to update score and level function updateScore(points) { score += points; scoreText.setText('Score: ' + score); if (score >= 2500 * Math.pow(2.5, level - 1)) { level++; // Increase enemy speed and spawn rate by 10% each level enemySpeedMultiplier *= 1.1; enemySpawnRate *= 0.9; clearEnemies(); startLevel(); } } // Function to clear enemies function clearEnemies() { for (var i = 0; i < enemies.length; i++) { enemies[i].destroy(); } enemies = []; LK.clearInterval(enemySpawnTimer); } // Initialize background objects var backgroundObjects = []; for (var i = 0; i < 40; i++) { // Create 40 background objects var bgObject = new BackgroundObject(); bgObject.x = Math.random() * 2048; bgObject.y = Math.random() * 2732; backgroundObjects.push(bgObject); game.addChild(bgObject); } // Initialize new interactive background objects var backgroundObjects2 = []; for (var i = 0; i < 20; i++) { // Create 20 new background objects var bgObject2 = new BackgroundObject2(); bgObject2.x = Math.random() * 2048; bgObject2.y = Math.random() * 2732; backgroundObjects2.push(bgObject2); game.addChild(bgObject2); } // Initialize player player = new Player(); player.x = 1024; player.y = 2500; game.addChild(player); // Initialize texts levelText = new Text2('LEVEL 1', { size: 150, fill: 0xFFFFFF }); levelText.anchor.set(0.5, 0.5); LK.gui.center.addChild(levelText); scoreText = new Text2('Score: 0', { size: 50, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); LK.gui.topLeft.addChild(scoreText); // Display current fire rate below the score var fireRateText = new Text2('Fire Rate: ' + (1 / fireRate).toFixed(2), { size: 40, fill: 0xFFFFFF }); fireRateText.anchor.set(0, 0); fireRateText.y = scoreText.height + 10; // Position below the score LK.gui.topLeft.addChild(fireRateText); livesText = new Text2('Lives: 10', { size: 50, fill: 0xFFFFFF }); livesText.anchor.set(1, 0); LK.gui.topRight.addChild(livesText); // Start the first level startLevel(); // Handle player movement game.down = function (x, y, obj) { player.x = x; }; game.move = function (x, y, obj) { var deltaX = x - player.x; // Prevent player from moving through walls if (x > 100 && x < 1948) { player.x = x; } backgroundObjects.forEach(function (bgObject) { bgObject.x -= deltaX * 0.1; // Move background objects in the opposite direction }); backgroundObjects2.forEach(function (bgObject2) { bgObject2.x -= deltaX * 0.1; // Move new background objects in the opposite direction of player }); }; // Handle shooting var lastShot = 0; var fireRate = 0.5; game.up = function (x, y, obj) { if (LK.ticks - lastShot >= fireRate * 60) { var bullet = new Bullet(); bullet.x = player.x; bullet.y = player.y; bullets.push(bullet); game.addChild(bullet); lastShot = LK.ticks; } }; // Game update loop game.update = function () { // Update background objects for (var i = 0; i < backgroundObjects.length; i++) { backgroundObjects[i].update(); } // Update bullets for (var i = bullets.length - 1; i >= 0; i--) { bullets[i].update(); if (bullets[i].y < -50) { bullets[i].destroy(); bullets.splice(i, 1); } } // Update enemies for (var i = enemies.length - 1; i >= 0; i--) { enemies[i].update(); // Prevent enemies from moving through walls if (enemies[i].x < 100) { enemies[i].x = 100; } else if (enemies[i].x > 1948) { enemies[i].x = 1948; } if (enemies[i].y > 2732) { if (!(enemies[i] instanceof FastEnemy) && !(enemies[i] instanceof FireRateEnemy)) { lives--; livesText.setText('Lives: ' + lives); if (lives <= 0) { LK.showGameOver(); } } enemies[i].destroy(); enemies.splice(i, 1); } } // Check for collisions for (var i = bullets.length - 1; i >= 0; i--) { for (var j = enemies.length - 1; j >= 0; j--) { if (bullets[i].intersects(enemies[j])) { bullets[i].destroy(); bullets.splice(i, 1); // Add explosion effect var explosion = function explosion(x, y, scale, speed, rotationSpeed) { var explosionAsset = LK.getAsset('explosion', { anchorX: 0.5, anchorY: 0.5, x: x, y: y, scaleX: scale, scaleY: scale }); explosionAsset.speed = speed; explosionAsset.rotationSpeed = rotationSpeed; explosionAsset.update = function () { this.y += this.speed; this.rotation += this.rotationSpeed; // Gradually shrink the explosion effect this.scaleX *= 0.95; this.scaleY *= 0.95; // If the explosion effect has shrunk to less than 5% of its original size, destroy it if (this.scaleX < 0.05 || this.scaleY < 0.05) { this.destroy(); } }; game.addChild(explosionAsset); }; if (enemies[j] instanceof Enemy2) { enemies[j].hits++; LK.getSound('patlama2').play(); if (enemies[j].hits >= 2) { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(100); // Higher score for the tougher enemy } } else if (enemies[j] instanceof NewEnemy) { enemies[j].hits++; LK.getSound('patlama2').play(); if (enemies[j].hits >= 2) { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(200); // Score for NewEnemy } } else if (enemies[j] instanceof FastEnemy) { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(150); // Higher score for the faster enemy // Slow down other enemies by 30% enemies.forEach(function (enemy) { enemy.speed *= 0.7; }); } else if (enemies[j] instanceof FireRateEnemy) { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(75); // Score for the FireRateEnemy fireRate *= 0.98; // Increase fire rate by 2% } else if (enemies[j] instanceof NewEnemy6) { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(100); // Score for NewEnemy6 var originalFireRate = fireRate; fireRate /= 2; // Double the fire rate LK.setTimeout(function () { fireRate = originalFireRate; // Revert to original fire rate after 3 seconds }, 3000); } else if (enemies[j] instanceof NewEnemy7) { enemies[j].hits++; LK.getSound('patlama2').play(); if (enemies[j].hits >= 3) { // Requires 3 hits to destroy explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(250); // Score for NewEnemy7 } } else { explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed); enemies[j].destroy(); LK.getSound('patlama2').play(); enemies.splice(j, 1); updateScore(50); } break; } } } // Update fire rate text fireRateText.setText('Fire Rate: ' + (1 / fireRate).toFixed(2)); };
===================================================================
--- original.js
+++ change.js
@@ -482,8 +482,9 @@
game.addChild(explosionAsset);
};
if (enemies[j] instanceof Enemy2) {
enemies[j].hits++;
+ LK.getSound('patlama2').play();
if (enemies[j].hits >= 2) {
explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed);
enemies[j].destroy();
LK.getSound('patlama2').play();
@@ -491,8 +492,9 @@
updateScore(100); // Higher score for the tougher enemy
}
} else if (enemies[j] instanceof NewEnemy) {
enemies[j].hits++;
+ LK.getSound('patlama2').play();
if (enemies[j].hits >= 2) {
explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed);
enemies[j].destroy();
LK.getSound('patlama2').play();
@@ -528,8 +530,9 @@
fireRate = originalFireRate; // Revert to original fire rate after 3 seconds
}, 3000);
} else if (enemies[j] instanceof NewEnemy7) {
enemies[j].hits++;
+ LK.getSound('patlama2').play();
if (enemies[j].hits >= 3) {
// Requires 3 hits to destroy
explosion(enemies[j].x, enemies[j].y, 1, enemies[j].speed, enemies[j].rotationSpeed);
enemies[j].destroy();
daire şeklinde kraterler bulunan gir gezegen. Single Game Texture. In-Game asset. 2d. no background. High contrast. No shadows.
kırmızı gezegen. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
yuvarlak bir fire yazısı yeşil. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
uzay uydusu. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
elevler içinde 2X yazısı. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
+2 yazan bir kalp. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
fireball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
iceball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.