User prompt
leveller ekranda yazsın ve bir ana menü olsun
User prompt
10 level olsun
User prompt
Let the enemies not come to us, but let them stand in the middle like stars
User prompt
Meteors come very fast and we have 10 lives. If the enemy meteor passes us or hits us, we lose our lives.
User prompt
düşmanalar hızlı gelsin
User prompt
biz onlara ateş edelim hemde oyuncunun gözünden olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Survival Rush
Initial prompt
hayatta kalmayla ilgili bir oyun yap
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -8; self.update = function () { self.y += self.speed; }; return self; }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); // Enemies are now stationary like stars self.update = function () { // No movement - enemies stay in place like stars }; return self; }); var Meteor = Container.expand(function () { var self = Container.call(this); var meteorGraphics = self.attachAsset('meteor', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 12 + Math.random() * 8; self.rotationSpeed = (Math.random() - 0.5) * 0.1; self.update = function () { self.y += self.speed; meteorGraphics.rotation += self.rotationSpeed; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.maxHealth = 10; self.health = self.maxHealth; self.shieldActive = false; self.shieldTimer = 0; self.update = function () { // Update shield timer if (self.shieldActive) { self.shieldTimer--; if (self.shieldTimer <= 0) { self.shieldActive = false; playerGraphics.tint = 0xffffff; } } }; self.takeDamage = function (amount) { if (self.shieldActive) return; self.health -= 1; if (self.health <= 0) { self.health = 0; LK.showGameOver(); return; } // Flash red when taking damage LK.effects.flashObject(self, 0xff0000, 500); LK.effects.flashScreen(0xff0000, 300); LK.getSound('damage').play(); // Update health display healthBar.width = self.health / self.maxHealth * 300; }; self.activateShield = function () { self.shieldActive = true; self.shieldTimer = 300; // 5 seconds at 60fps playerGraphics.tint = 0x8844ff; }; self.heal = function (amount) { self.health = Math.min(self.maxHealth, self.health + 1); healthBar.width = self.health / self.maxHealth * 300; }; return self; }); var PowerUp = Container.expand(function (type) { var self = Container.call(this); var powerUpGraphics; self.type = type; if (type === 'health') { powerUpGraphics = self.attachAsset('healthPack', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'shield') { powerUpGraphics = self.attachAsset('shield', { anchorX: 0.5, anchorY: 0.5 }); } self.floatOffset = 0; self.floatSpeed = 0.05; self.update = function () { self.floatOffset += self.floatSpeed; powerUpGraphics.y = Math.sin(self.floatOffset) * 5; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x001122 }); /**** * Game Code ****/ // Game variables var player; var meteors = []; var enemies = []; var powerUps = []; var bullets = []; var gameTime = 0; var meteorSpawnRate = 120; // frames between meteor spawns var enemySpawnRate = 300; // frames between enemy spawns (slower for stationary enemies) var powerUpSpawnRate = 600; // frames between power-up spawns var difficultyTimer = 0; var survivalTime = 0; var baseScore = 0; var shootTimer = 0; var shootRate = 15; // frames between shots var currentLevel = 1; var maxLevel = 10; var levelTimer = 0; var levelDuration = 1800; // 30 seconds per level at 60fps var levelStartScore = 0; // UI Elements var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); scoreText.x = 120; scoreText.y = 50; LK.gui.topLeft.addChild(scoreText); var timeText = new Text2('Time: 0s', { size: 50, fill: 0xFFFFFF }); timeText.anchor.set(0.5, 0); LK.gui.top.addChild(timeText); var levelText = new Text2('Level: 1', { size: 60, fill: 0xFFD700 }); levelText.anchor.set(1, 0); levelText.x = 1948; levelText.y = 50; LK.gui.topRight.addChild(levelText); // Main menu level display var mainMenuLevelText = new Text2('LEVEL 1', { size: 120, fill: 0xFFD700 }); mainMenuLevelText.anchor.set(0.5, 0.5); mainMenuLevelText.x = 1024; mainMenuLevelText.y = 400; game.addChild(mainMenuLevelText); // Main menu instructions var instructionsText = new Text2('Drag to Move\nShoot Meteors\nAvoid Enemies\nCollect Power-ups', { size: 60, fill: 0xFFFFFF }); instructionsText.anchor.set(0.5, 0.5); instructionsText.x = 1024; instructionsText.y = 1366; game.addChild(instructionsText); var healthBarBg = LK.getAsset('healthPack', { anchorX: 0, anchorY: 0, scaleX: 7.5, scaleY: 0.5 }); healthBarBg.tint = 0x440000; healthBarBg.x = 150; healthBarBg.y = 2650; LK.gui.bottomLeft.addChild(healthBarBg); var healthBar = LK.getAsset('healthPack', { anchorX: 0, anchorY: 0, scaleX: 7.5, scaleY: 0.5 }); healthBar.tint = 0x44ff44; healthBar.x = 150; healthBar.y = 2650; LK.gui.bottomLeft.addChild(healthBar); var healthText = new Text2('Lives', { size: 40, fill: 0xFFFFFF }); healthText.anchor.set(0, 0.5); healthText.x = 50; healthText.y = 2665; LK.gui.bottomLeft.addChild(healthText); // Initialize player player = game.addChild(new Player()); player.x = 1024; player.y = 2000; // Drag controls var dragNode = null; game.down = function (x, y, obj) { dragNode = player; player.x = x; player.y = y; }; game.move = function (x, y, obj) { if (dragNode) { dragNode.x = Math.max(40, Math.min(2048 - 40, x)); dragNode.y = Math.max(40, Math.min(2732 - 40, y)); } }; game.up = function (x, y, obj) { dragNode = null; }; // Spawn functions function spawnMeteor() { var meteor = new Meteor(); meteor.x = Math.random() * (2048 - 100) + 50; meteor.y = -30; meteor.lastY = meteor.y; meteor.lastIntersecting = false; // Level-based meteor modifications var meteorGraphics = meteor.children[0]; if (currentLevel >= 3) { // Faster meteors in higher levels meteor.speed += currentLevel * 2; } if (currentLevel >= 5) { // Larger meteors in mid-high levels meteorGraphics.scaleX = 1.3; meteorGraphics.scaleY = 1.3; } if (currentLevel >= 7) { // Red tint for dangerous high-level meteors meteorGraphics.tint = 0xFF4444; } meteors.push(meteor); game.addChild(meteor); } function spawnEnemy() { var enemy = new Enemy(); // Place enemies in fixed positions across the screen like stars enemy.x = 200 + Math.random() * 1648; // Random X position across screen width enemy.y = 300 + Math.random() * 1200; // Random Y position in middle area enemy.lastIntersecting = false; // Level-based enemy modifications var enemyGraphics = enemy.children[0]; if (currentLevel >= 4) { // Larger enemies in higher levels enemyGraphics.scaleX = 1.2; enemyGraphics.scaleY = 1.2; } if (currentLevel >= 6) { // Purple tint for higher level enemies enemyGraphics.tint = 0x8844FF; } if (currentLevel >= 8) { // Even larger and more dangerous in highest levels enemyGraphics.scaleX = 1.5; enemyGraphics.scaleY = 1.5; } enemies.push(enemy); game.addChild(enemy); } function spawnPowerUp() { var type = Math.random() < 0.7 ? 'health' : 'shield'; var powerUp = new PowerUp(type); powerUp.x = Math.random() * (2048 - 100) + 50; powerUp.y = 200 + Math.random() * 1500; powerUp.lastIntersecting = false; powerUps.push(powerUp); game.addChild(powerUp); } function shootBullet() { var bullet = new Bullet(); bullet.x = player.x; bullet.y = player.y - 40; bullet.lastY = bullet.y; bullet.lastIntersecting = false; bullets.push(bullet); game.addChild(bullet); LK.getSound('shoot').play(); } // Main game loop game.update = function () { gameTime++; survivalTime = Math.floor(gameTime / 60); // Update UI var currentScore = baseScore + survivalTime; LK.setScore(currentScore); scoreText.setText('Score: ' + currentScore); timeText.setText('Time: ' + survivalTime + 's'); levelText.setText('Level: ' + currentLevel); // Level progression levelTimer++; if (levelTimer >= levelDuration && currentLevel < maxLevel) { currentLevel++; levelTimer = 0; levelStartScore = currentScore; // Level up effects LK.effects.flashScreen(0x00FF00, 800); // Update main menu level display mainMenuLevelText.setText('LEVEL ' + currentLevel); // Increase difficulty per level meteorSpawnRate = Math.max(20, meteorSpawnRate - 8); enemySpawnRate = Math.max(40, enemySpawnRate - 20); shootRate = Math.max(8, shootRate - 1); // Bonus score for completing level baseScore += 500; } // Win condition - complete all 10 levels if (currentLevel >= maxLevel && levelTimer >= levelDuration) { LK.showYouWin(); } // Increase difficulty over time difficultyTimer++; if (difficultyTimer >= 300) { // Every 5 seconds difficultyTimer = 0; meteorSpawnRate = Math.max(30, meteorSpawnRate - 2); enemySpawnRate = Math.max(60, enemySpawnRate - 8); } // Automatic shooting shootTimer++; if (shootTimer >= shootRate) { shootTimer = 0; shootBullet(); } // Spawn meteors if (gameTime % meteorSpawnRate === 0) { spawnMeteor(); } // Spawn enemies if (gameTime % enemySpawnRate === 0) { spawnEnemy(); } // Spawn power-ups if (gameTime % powerUpSpawnRate === 0) { spawnPowerUp(); } // Update meteors for (var i = meteors.length - 1; i >= 0; i--) { var meteor = meteors[i]; // Off-screen check - lose life when meteor passes if (meteor.lastY < 2800 && meteor.y >= 2800) { player.takeDamage(1); meteor.destroy(); meteors.splice(i, 1); continue; } // Collision with player var currentIntersecting = meteor.intersects(player); if (!meteor.lastIntersecting && currentIntersecting) { player.takeDamage(1); meteor.destroy(); meteors.splice(i, 1); continue; } meteor.lastY = meteor.y; meteor.lastIntersecting = currentIntersecting; } // Update enemies for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; // No off-screen check needed since enemies are stationary // Collision with player var currentIntersecting = enemy.intersects(player); if (!enemy.lastIntersecting && currentIntersecting) { player.takeDamage(1); } enemy.lastIntersecting = currentIntersecting; } // Update power-ups for (var i = powerUps.length - 1; i >= 0; i--) { var powerUp = powerUps[i]; // Collection check var currentIntersecting = powerUp.intersects(player); if (!powerUp.lastIntersecting && currentIntersecting) { if (powerUp.type === 'health') { player.heal(1); baseScore += 50; LK.getSound('collect').play(); } else if (powerUp.type === 'shield') { player.activateShield(); baseScore += 100; LK.getSound('powerup').play(); } powerUp.destroy(); powerUps.splice(i, 1); continue; } powerUp.lastIntersecting = currentIntersecting; } // Update bullets for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; // Off-screen check if (bullet.lastY >= -50 && bullet.y < -50) { bullet.destroy(); bullets.splice(i, 1); continue; } // Check collision with meteors var hitMeteor = false; for (var j = meteors.length - 1; j >= 0; j--) { var meteor = meteors[j]; if (bullet.intersects(meteor)) { // Destroy both bullet and meteor bullet.destroy(); bullets.splice(i, 1); meteor.destroy(); meteors.splice(j, 1); baseScore += 100; hitMeteor = true; break; } } if (hitMeteor) continue; // Check collision with enemies for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; if (bullet.intersects(enemy)) { // Destroy both bullet and enemy bullet.destroy(); bullets.splice(i, 1); enemy.destroy(); enemies.splice(j, 1); baseScore += 200; break; } } bullet.lastY = bullet.y; } };
===================================================================
--- original.js
+++ change.js
@@ -166,8 +166,26 @@
levelText.anchor.set(1, 0);
levelText.x = 1948;
levelText.y = 50;
LK.gui.topRight.addChild(levelText);
+// Main menu level display
+var mainMenuLevelText = new Text2('LEVEL 1', {
+ size: 120,
+ fill: 0xFFD700
+});
+mainMenuLevelText.anchor.set(0.5, 0.5);
+mainMenuLevelText.x = 1024;
+mainMenuLevelText.y = 400;
+game.addChild(mainMenuLevelText);
+// Main menu instructions
+var instructionsText = new Text2('Drag to Move\nShoot Meteors\nAvoid Enemies\nCollect Power-ups', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+instructionsText.anchor.set(0.5, 0.5);
+instructionsText.x = 1024;
+instructionsText.y = 1366;
+game.addChild(instructionsText);
var healthBarBg = LK.getAsset('healthPack', {
anchorX: 0,
anchorY: 0,
scaleX: 7.5,
@@ -301,8 +319,10 @@
levelTimer = 0;
levelStartScore = currentScore;
// Level up effects
LK.effects.flashScreen(0x00FF00, 800);
+ // Update main menu level display
+ mainMenuLevelText.setText('LEVEL ' + currentLevel);
// Increase difficulty per level
meteorSpawnRate = Math.max(20, meteorSpawnRate - 8);
enemySpawnRate = Math.max(40, enemySpawnRate - 20);
shootRate = Math.max(8, shootRate - 1);
silah mermisi. In-Game asset. 2d. High contrast. No shadows
medkit. In-Game asset. 2d. High contrast. No shadows
meteor. In-Game asset. 2d. High contrast. No shadows
uzay aracı. In-Game asset. 2d. High contrast. No shadows
a red shield with a white cross on it. In-Game asset. 2d. High contrast. No shadows
alien. In-Game asset. 2d. High contrast. No shadows