User prompt
yeni bir arkaplan asseti oluştur ve tüm ekranı kaplasın
User prompt
havadan gelen bir yetenek topu olsun o topu alınca 15 saniye mermilerimiz 3'lü olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
bir adet daha güçlü yaratık olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Galactic Battle Arena
Initial prompt
bir uzay savaşı oyunu yapalım
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2 + Math.random() * 3; self.shootCooldown = Math.floor(Math.random() * 120) + 60; self.movePattern = Math.floor(Math.random() * 3); self.originalX = self.x; self.time = 0; self.update = function () { self.time++; // Movement patterns if (self.movePattern === 0) { // Straight down self.y += self.speed; } else if (self.movePattern === 1) { // Zigzag self.y += self.speed; self.x += Math.sin(self.time * 0.1) * 2; } else { // Side to side self.y += self.speed * 0.5; self.x += Math.cos(self.time * 0.05) * 3; } // Keep enemies on screen horizontally if (self.x < 50) self.x = 50; if (self.x > 1998) self.x = 1998; // Shooting if (self.shootCooldown > 0) { self.shootCooldown--; } if (self.shootCooldown <= 0 && self.y > 100 && self.y < 2000) { self.shoot(); self.shootCooldown = Math.floor(Math.random() * 180) + 120; } }; self.shoot = function () { var bullet = new EnemyBullet(); bullet.x = self.x; bullet.y = self.y + 30; enemyBullets.push(bullet); game.addChild(bullet); }; return self; }); var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 8; self.update = function () { self.y += self.speed; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.health = 3; self.maxHealth = 3; self.shootCooldown = 0; self.powerLevel = 1; self.update = function () { if (self.shootCooldown > 0) { self.shootCooldown--; } // Auto-shoot if (self.shootCooldown <= 0) { self.shoot(); self.shootCooldown = 15; // Shoot every 15 frames } }; self.shoot = function () { var bullet = new PlayerBullet(); bullet.x = self.x; bullet.y = self.y - 60; playerBullets.push(bullet); game.addChild(bullet); LK.getSound('shoot').play(); }; self.takeDamage = function () { self.health--; LK.getSound('playerHit').play(); LK.effects.flashObject(self, 0xff0000, 500); if (self.health <= 0) { LK.showGameOver(); } }; self.heal = function () { if (self.health < self.maxHealth) { self.health++; } }; return self; }); var PlayerBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('playerBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -15; self.update = function () { self.y += self.speed; }; return self; }); var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpGraphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.time = 0; self.update = function () { self.time++; self.y += self.speed; self.rotation += 0.1; // Floating effect powerUpGraphics.y = Math.sin(self.time * 0.2) * 10; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000033 }); /**** * Game Code ****/ var player = null; var playerBullets = []; var enemies = []; var enemyBullets = []; var powerUps = []; var enemySpawnTimer = 0; var powerUpSpawnTimer = 0; var difficultyLevel = 1; var dragNode = null; // UI Elements var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0, 0); scoreTxt.x = 120; scoreTxt.y = 50; LK.gui.topLeft.addChild(scoreTxt); var healthTxt = new Text2('Health: 3', { size: 60, fill: 0x00FF00 }); healthTxt.anchor.set(1, 0); healthTxt.x = -50; healthTxt.y = 50; LK.gui.topRight.addChild(healthTxt); // Initialize player player = new Player(); player.x = 1024; player.y = 2400; game.addChild(player); // Game controls function handleMove(x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; // Keep player on screen if (dragNode.x < 40) dragNode.x = 40; if (dragNode.x > 2008) dragNode.x = 2008; if (dragNode.y < 200) dragNode.y = 200; if (dragNode.y > 2600) dragNode.y = 2600; } } game.move = handleMove; game.down = function (x, y, obj) { dragNode = player; handleMove(x, y, obj); }; game.up = function (x, y, obj) { dragNode = null; }; // Main game loop game.update = function () { // Update difficulty if (LK.ticks % 1800 === 0) { // Every 30 seconds difficultyLevel++; } // Spawn enemies enemySpawnTimer++; var spawnRate = Math.max(60 - difficultyLevel * 5, 20); if (enemySpawnTimer >= spawnRate) { var enemy = new Enemy(); enemy.x = Math.random() * 1800 + 124; enemy.y = -50; enemy.speed += difficultyLevel * 0.5; enemies.push(enemy); game.addChild(enemy); enemySpawnTimer = 0; } // Spawn power-ups powerUpSpawnTimer++; if (powerUpSpawnTimer >= 900) { // Every 15 seconds var powerUp = new PowerUp(); powerUp.x = Math.random() * 1800 + 124; powerUp.y = -50; powerUps.push(powerUp); game.addChild(powerUp); powerUpSpawnTimer = 0; } // Update and check player bullets for (var i = playerBullets.length - 1; i >= 0; i--) { var bullet = playerBullets[i]; if (bullet.lastY === undefined) bullet.lastY = bullet.y; // Remove bullets that go off screen if (bullet.lastY >= -30 && bullet.y < -30) { bullet.destroy(); playerBullets.splice(i, 1); 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(); playerBullets.splice(i, 1); enemy.destroy(); enemies.splice(j, 1); // Add score LK.setScore(LK.getScore() + 10 * difficultyLevel); scoreTxt.setText('Score: ' + LK.getScore()); LK.getSound('enemyHit').play(); break; } } if (bullet.parent) { bullet.lastY = bullet.y; } } // Update and check enemy bullets for (var i = enemyBullets.length - 1; i >= 0; i--) { var bullet = enemyBullets[i]; if (bullet.lastY === undefined) bullet.lastY = bullet.y; // Remove bullets that go off screen if (bullet.lastY <= 2732 && bullet.y > 2732) { bullet.destroy(); enemyBullets.splice(i, 1); continue; } // Check collision with player if (bullet.intersects(player)) { bullet.destroy(); enemyBullets.splice(i, 1); player.takeDamage(); healthTxt.setText('Health: ' + player.health); continue; } if (bullet.parent) { bullet.lastY = bullet.y; } } // Update and check enemies for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; if (enemy.lastY === undefined) enemy.lastY = enemy.y; // Remove enemies that go off screen if (enemy.lastY <= 2732 && enemy.y > 2732) { enemy.destroy(); enemies.splice(i, 1); continue; } // Check collision with player if (enemy.intersects(player)) { enemy.destroy(); enemies.splice(i, 1); player.takeDamage(); healthTxt.setText('Health: ' + player.health); continue; } if (enemy.parent) { enemy.lastY = enemy.y; } } // Update and check power-ups for (var i = powerUps.length - 1; i >= 0; i--) { var powerUp = powerUps[i]; if (powerUp.lastY === undefined) powerUp.lastY = powerUp.y; // Remove power-ups that go off screen if (powerUp.lastY <= 2732 && powerUp.y > 2732) { powerUp.destroy(); powerUps.splice(i, 1); continue; } // Check collision with player if (powerUp.intersects(player)) { powerUp.destroy(); powerUps.splice(i, 1); player.heal(); healthTxt.setText('Health: ' + player.health); LK.getSound('powerup').play(); LK.effects.flashObject(player, 0x00ffff, 300); continue; } if (powerUp.parent) { powerUp.lastY = powerUp.y; } } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,330 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Enemy = Container.expand(function () {
+ var self = Container.call(this);
+ var enemyGraphics = self.attachAsset('enemy', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2 + Math.random() * 3;
+ self.shootCooldown = Math.floor(Math.random() * 120) + 60;
+ self.movePattern = Math.floor(Math.random() * 3);
+ self.originalX = self.x;
+ self.time = 0;
+ self.update = function () {
+ self.time++;
+ // Movement patterns
+ if (self.movePattern === 0) {
+ // Straight down
+ self.y += self.speed;
+ } else if (self.movePattern === 1) {
+ // Zigzag
+ self.y += self.speed;
+ self.x += Math.sin(self.time * 0.1) * 2;
+ } else {
+ // Side to side
+ self.y += self.speed * 0.5;
+ self.x += Math.cos(self.time * 0.05) * 3;
+ }
+ // Keep enemies on screen horizontally
+ if (self.x < 50) self.x = 50;
+ if (self.x > 1998) self.x = 1998;
+ // Shooting
+ if (self.shootCooldown > 0) {
+ self.shootCooldown--;
+ }
+ if (self.shootCooldown <= 0 && self.y > 100 && self.y < 2000) {
+ self.shoot();
+ self.shootCooldown = Math.floor(Math.random() * 180) + 120;
+ }
+ };
+ self.shoot = function () {
+ var bullet = new EnemyBullet();
+ bullet.x = self.x;
+ bullet.y = self.y + 30;
+ enemyBullets.push(bullet);
+ game.addChild(bullet);
+ };
+ return self;
+});
+var EnemyBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var bulletGraphics = self.attachAsset('enemyBullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 8;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var Player = Container.expand(function () {
+ var self = Container.call(this);
+ var playerGraphics = self.attachAsset('player', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.health = 3;
+ self.maxHealth = 3;
+ self.shootCooldown = 0;
+ self.powerLevel = 1;
+ self.update = function () {
+ if (self.shootCooldown > 0) {
+ self.shootCooldown--;
+ }
+ // Auto-shoot
+ if (self.shootCooldown <= 0) {
+ self.shoot();
+ self.shootCooldown = 15; // Shoot every 15 frames
+ }
+ };
+ self.shoot = function () {
+ var bullet = new PlayerBullet();
+ bullet.x = self.x;
+ bullet.y = self.y - 60;
+ playerBullets.push(bullet);
+ game.addChild(bullet);
+ LK.getSound('shoot').play();
+ };
+ self.takeDamage = function () {
+ self.health--;
+ LK.getSound('playerHit').play();
+ LK.effects.flashObject(self, 0xff0000, 500);
+ if (self.health <= 0) {
+ LK.showGameOver();
+ }
+ };
+ self.heal = function () {
+ if (self.health < self.maxHealth) {
+ self.health++;
+ }
+ };
+ return self;
+});
+var PlayerBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var bulletGraphics = self.attachAsset('playerBullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = -15;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var PowerUp = Container.expand(function () {
+ var self = Container.call(this);
+ var powerUpGraphics = self.attachAsset('powerUp', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3;
+ self.time = 0;
+ self.update = function () {
+ self.time++;
+ self.y += self.speed;
+ self.rotation += 0.1;
+ // Floating effect
+ powerUpGraphics.y = Math.sin(self.time * 0.2) * 10;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x000033
+});
+
+/****
+* Game Code
+****/
+var player = null;
+var playerBullets = [];
+var enemies = [];
+var enemyBullets = [];
+var powerUps = [];
+var enemySpawnTimer = 0;
+var powerUpSpawnTimer = 0;
+var difficultyLevel = 1;
+var dragNode = null;
+// UI Elements
+var scoreTxt = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0, 0);
+scoreTxt.x = 120;
+scoreTxt.y = 50;
+LK.gui.topLeft.addChild(scoreTxt);
+var healthTxt = new Text2('Health: 3', {
+ size: 60,
+ fill: 0x00FF00
+});
+healthTxt.anchor.set(1, 0);
+healthTxt.x = -50;
+healthTxt.y = 50;
+LK.gui.topRight.addChild(healthTxt);
+// Initialize player
+player = new Player();
+player.x = 1024;
+player.y = 2400;
+game.addChild(player);
+// Game controls
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ dragNode.x = x;
+ dragNode.y = y;
+ // Keep player on screen
+ if (dragNode.x < 40) dragNode.x = 40;
+ if (dragNode.x > 2008) dragNode.x = 2008;
+ if (dragNode.y < 200) dragNode.y = 200;
+ if (dragNode.y > 2600) dragNode.y = 2600;
+ }
+}
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Main game loop
+game.update = function () {
+ // Update difficulty
+ if (LK.ticks % 1800 === 0) {
+ // Every 30 seconds
+ difficultyLevel++;
+ }
+ // Spawn enemies
+ enemySpawnTimer++;
+ var spawnRate = Math.max(60 - difficultyLevel * 5, 20);
+ if (enemySpawnTimer >= spawnRate) {
+ var enemy = new Enemy();
+ enemy.x = Math.random() * 1800 + 124;
+ enemy.y = -50;
+ enemy.speed += difficultyLevel * 0.5;
+ enemies.push(enemy);
+ game.addChild(enemy);
+ enemySpawnTimer = 0;
+ }
+ // Spawn power-ups
+ powerUpSpawnTimer++;
+ if (powerUpSpawnTimer >= 900) {
+ // Every 15 seconds
+ var powerUp = new PowerUp();
+ powerUp.x = Math.random() * 1800 + 124;
+ powerUp.y = -50;
+ powerUps.push(powerUp);
+ game.addChild(powerUp);
+ powerUpSpawnTimer = 0;
+ }
+ // Update and check player bullets
+ for (var i = playerBullets.length - 1; i >= 0; i--) {
+ var bullet = playerBullets[i];
+ if (bullet.lastY === undefined) bullet.lastY = bullet.y;
+ // Remove bullets that go off screen
+ if (bullet.lastY >= -30 && bullet.y < -30) {
+ bullet.destroy();
+ playerBullets.splice(i, 1);
+ 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();
+ playerBullets.splice(i, 1);
+ enemy.destroy();
+ enemies.splice(j, 1);
+ // Add score
+ LK.setScore(LK.getScore() + 10 * difficultyLevel);
+ scoreTxt.setText('Score: ' + LK.getScore());
+ LK.getSound('enemyHit').play();
+ break;
+ }
+ }
+ if (bullet.parent) {
+ bullet.lastY = bullet.y;
+ }
+ }
+ // Update and check enemy bullets
+ for (var i = enemyBullets.length - 1; i >= 0; i--) {
+ var bullet = enemyBullets[i];
+ if (bullet.lastY === undefined) bullet.lastY = bullet.y;
+ // Remove bullets that go off screen
+ if (bullet.lastY <= 2732 && bullet.y > 2732) {
+ bullet.destroy();
+ enemyBullets.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (bullet.intersects(player)) {
+ bullet.destroy();
+ enemyBullets.splice(i, 1);
+ player.takeDamage();
+ healthTxt.setText('Health: ' + player.health);
+ continue;
+ }
+ if (bullet.parent) {
+ bullet.lastY = bullet.y;
+ }
+ }
+ // Update and check enemies
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ if (enemy.lastY === undefined) enemy.lastY = enemy.y;
+ // Remove enemies that go off screen
+ if (enemy.lastY <= 2732 && enemy.y > 2732) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player)) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ player.takeDamage();
+ healthTxt.setText('Health: ' + player.health);
+ continue;
+ }
+ if (enemy.parent) {
+ enemy.lastY = enemy.y;
+ }
+ }
+ // Update and check power-ups
+ for (var i = powerUps.length - 1; i >= 0; i--) {
+ var powerUp = powerUps[i];
+ if (powerUp.lastY === undefined) powerUp.lastY = powerUp.y;
+ // Remove power-ups that go off screen
+ if (powerUp.lastY <= 2732 && powerUp.y > 2732) {
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (powerUp.intersects(player)) {
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ player.heal();
+ healthTxt.setText('Health: ' + player.health);
+ LK.getSound('powerup').play();
+ LK.effects.flashObject(player, 0x00ffff, 300);
+ continue;
+ }
+ if (powerUp.parent) {
+ powerUp.lastY = powerUp.y;
+ }
+ }
+};
\ No newline at end of file
pixel art bir uzay gemisi. In-Game asset. 2d. High contrast. No shadows
aşağı doğru bakan pixel art bir uzay gemisi. In-Game asset. 2d. High contrast. No shadows
kırmızı pixel art bir mermi. In-Game asset. 2d. High contrast. No shadows
pixel art mermi . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
küçük ve az yıldızların olduğu gerçekçi bir uzay. In-Game asset. 2d. High contrast. No shadows
3 adet yan yana mermi, şarjör. In-Game asset. 2d. High contrast. No shadows