User prompt
oyuna başlar başlamaz müzik çalsın
User prompt
ses yok bu seferde ve yanlarınde level seviyeleri yazsın mor renkle ve dönmesinler level seviyesi yazıları
User prompt
select level kısmında levellerin zorlukları üstlerinde değil yanlarında yazsın
User prompt
tıklayınca bir şey olmuyor level seçtiğimizde
User prompt
oyunda level sistemi olsun ve 3 level olsun 1. level kolay 2. level orta 3. level zor olsun ve leveller için ayrı birmenü olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
ses yok bu arada ve Uiacatminecraft assetlere ben ekledim yani sende gözükür
User prompt
arka plana Uiacatminecraft adlı sesi ekle
User prompt
aşağıyada 'by Muhammed Fatih Özdemir' yaz
User prompt
Her power upta 1 can daha kazanalım ve oyunun başlangıcındaki SPACE FIGHTER yazısı dönmesin sabit kalsın ama her saniye renk değiştirsin. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyuna bir başlangıç menüsü ekle
User prompt
planet ve nebula özelliğini sil
User prompt
Oyuna uzay temalı bir arka plan ekle
User prompt
Lives diye yazma 3 kalp simgesi olsun canımız azaldığında onlardan biri yok olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Power Up ları aldıkça uçak büyüsün ve daha çok mermi ve daha büyük mermi atmaya başlasın ve3 can hakkımız olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyunu daha zorlaştır
Code edit (1 edits merged)
Please save this source code
User prompt
Sky Fighter - Aerial Combat Adventure
Initial prompt
Bir uçak oyunu yapacağım bana yardımcı olurmusun?
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var EnemyAircraft = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('enemyAircraft', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2 + Math.random() * 3; self.movePattern = Math.floor(Math.random() * 3); // 0: straight, 1: zigzag, 2: sine wave self.startX = 0; self.fireRate = 60 + Math.random() * 60; // Fire every 60-120 ticks self.lastFire = 0; self.update = function () { // Movement patterns if (self.movePattern === 0) { // Straight down self.y += self.speed; } else if (self.movePattern === 1) { // Zigzag pattern self.y += self.speed; self.x = self.startX + Math.sin(self.y * 0.01) * 100; } else if (self.movePattern === 2) { // Sine wave pattern self.y += self.speed; self.x = self.startX + Math.sin(self.y * 0.02) * 150; } // Fire bullets occasionally if (LK.ticks - self.lastFire >= self.fireRate) { self.fireBullet(); self.lastFire = LK.ticks; self.fireRate = 60 + Math.random() * 60; // Randomize next fire time } }; self.fireBullet = function () { var bullet = new EnemyBullet(); bullet.x = self.x; bullet.y = self.y + 40; enemyBullets.push(bullet); game.addChild(bullet); }; return self; }); var EnemyBullet = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.update = function () { self.y += self.speed; }; return self; }); var PlayerAircraft = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('playerAircraft', { anchorX: 0.5, anchorY: 0.5 }); self.health = 1; self.fireRate = 15; // Fire every 15 ticks self.lastFire = 0; self.update = function () { // Auto-fire bullets if (LK.ticks - self.lastFire >= self.fireRate) { self.fireBullet(); self.lastFire = LK.ticks; } }; self.fireBullet = function () { var bullet = new PlayerBullet(); bullet.x = self.x; bullet.y = self.y - 50; playerBullets.push(bullet); game.addChild(bullet); LK.getSound('shoot').play(); }; return self; }); var PlayerBullet = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('playerBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -8; self.update = function () { self.y += self.speed; }; return self; }); var PowerUp = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.rotationSpeed = 0.1; self.update = function () { self.y += self.speed; self.rotation += self.rotationSpeed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x001122 }); /**** * Game Code ****/ // Game variables var player; var enemies = []; var playerBullets = []; var enemyBullets = []; var powerUps = []; var enemySpawnRate = 120; // Spawn enemy every 120 ticks initially var powerUpSpawnRate = 600; // Spawn power-up every 600 ticks var difficultyTimer = 0; var dragNode = null; // UI Setup var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Initialize player player = new PlayerAircraft(); player.x = 1024; // Center horizontally player.y = 2400; // Near bottom of screen game.addChild(player); // Game input handlers 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(60, Math.min(1988, x)); // Keep within screen bounds dragNode.y = Math.max(200, Math.min(2600, y)); // Keep within reasonable bounds } }; game.up = function (x, y, obj) { dragNode = null; }; // Spawn enemy aircraft function spawnEnemy() { var enemy = new EnemyAircraft(); enemy.x = 200 + Math.random() * 1648; // Random x position enemy.y = -50; // Start above screen enemy.startX = enemy.x; enemies.push(enemy); game.addChild(enemy); } // Spawn power-up function spawnPowerUp() { var powerUp = new PowerUp(); powerUp.x = 200 + Math.random() * 1648; powerUp.y = -50; powerUps.push(powerUp); game.addChild(powerUp); } // Main game update loop game.update = function () { difficultyTimer++; // Increase difficulty over time if (difficultyTimer % 1800 === 0) { // Every 30 seconds enemySpawnRate = Math.max(40, enemySpawnRate - 10); } // Spawn enemies if (LK.ticks % enemySpawnRate === 0) { spawnEnemy(); } // Spawn power-ups if (LK.ticks % powerUpSpawnRate === 0) { spawnPowerUp(); } // 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 var hitEnemy = false; for (var e = enemies.length - 1; e >= 0; e--) { if (bullet.intersects(enemies[e])) { LK.setScore(LK.getScore() + 100); scoreTxt.setText('Score: ' + LK.getScore()); // Flash effect on enemy hit LK.effects.flashObject(enemies[e], 0xFFFFFF, 200); LK.getSound('enemyHit').play(); enemies[e].destroy(); enemies.splice(e, 1); bullet.destroy(); playerBullets.splice(i, 1); hitEnemy = true; break; } } if (hitEnemy) continue; 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 <= 2762 && bullet.y > 2762) { bullet.destroy(); enemyBullets.splice(i, 1); continue; } // Check collision with player if (bullet.intersects(player)) { LK.effects.flashScreen(0xFF0000, 1000); LK.showGameOver(); return; } 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 <= 2762 && enemy.y > 2762) { enemy.destroy(); enemies.splice(i, 1); continue; } // Check collision with player if (enemy.intersects(player)) { LK.effects.flashScreen(0xFF0000, 1000); LK.showGameOver(); return; } 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 <= 2762 && powerUp.y > 2762) { powerUp.destroy(); powerUps.splice(i, 1); continue; } // Check collision with player if (powerUp.intersects(player)) { LK.setScore(LK.getScore() + 50); scoreTxt.setText('Score: ' + LK.getScore()); // Reduce player fire rate for power-up effect player.fireRate = Math.max(5, player.fireRate - 2); LK.getSound('powerUpCollect').play(); LK.effects.flashObject(player, 0x00FF00, 500); powerUp.destroy(); powerUps.splice(i, 1); continue; } powerUp.lastY = powerUp.y; } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,285 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var EnemyAircraft = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('enemyAircraft', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2 + Math.random() * 3;
+ self.movePattern = Math.floor(Math.random() * 3); // 0: straight, 1: zigzag, 2: sine wave
+ self.startX = 0;
+ self.fireRate = 60 + Math.random() * 60; // Fire every 60-120 ticks
+ self.lastFire = 0;
+ self.update = function () {
+ // Movement patterns
+ if (self.movePattern === 0) {
+ // Straight down
+ self.y += self.speed;
+ } else if (self.movePattern === 1) {
+ // Zigzag pattern
+ self.y += self.speed;
+ self.x = self.startX + Math.sin(self.y * 0.01) * 100;
+ } else if (self.movePattern === 2) {
+ // Sine wave pattern
+ self.y += self.speed;
+ self.x = self.startX + Math.sin(self.y * 0.02) * 150;
+ }
+ // Fire bullets occasionally
+ if (LK.ticks - self.lastFire >= self.fireRate) {
+ self.fireBullet();
+ self.lastFire = LK.ticks;
+ self.fireRate = 60 + Math.random() * 60; // Randomize next fire time
+ }
+ };
+ self.fireBullet = function () {
+ var bullet = new EnemyBullet();
+ bullet.x = self.x;
+ bullet.y = self.y + 40;
+ enemyBullets.push(bullet);
+ game.addChild(bullet);
+ };
+ return self;
+});
+var EnemyBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('enemyBullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 4;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var PlayerAircraft = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('playerAircraft', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.health = 1;
+ self.fireRate = 15; // Fire every 15 ticks
+ self.lastFire = 0;
+ self.update = function () {
+ // Auto-fire bullets
+ if (LK.ticks - self.lastFire >= self.fireRate) {
+ self.fireBullet();
+ self.lastFire = LK.ticks;
+ }
+ };
+ self.fireBullet = function () {
+ var bullet = new PlayerBullet();
+ bullet.x = self.x;
+ bullet.y = self.y - 50;
+ playerBullets.push(bullet);
+ game.addChild(bullet);
+ LK.getSound('shoot').play();
+ };
+ return self;
+});
+var PlayerBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('playerBullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = -8;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var PowerUp = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('powerUp', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3;
+ self.rotationSpeed = 0.1;
+ self.update = function () {
+ self.y += self.speed;
+ self.rotation += self.rotationSpeed;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x001122
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var enemies = [];
+var playerBullets = [];
+var enemyBullets = [];
+var powerUps = [];
+var enemySpawnRate = 120; // Spawn enemy every 120 ticks initially
+var powerUpSpawnRate = 600; // Spawn power-up every 600 ticks
+var difficultyTimer = 0;
+var dragNode = null;
+// UI Setup
+var scoreTxt = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Initialize player
+player = new PlayerAircraft();
+player.x = 1024; // Center horizontally
+player.y = 2400; // Near bottom of screen
+game.addChild(player);
+// Game input handlers
+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(60, Math.min(1988, x)); // Keep within screen bounds
+ dragNode.y = Math.max(200, Math.min(2600, y)); // Keep within reasonable bounds
+ }
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Spawn enemy aircraft
+function spawnEnemy() {
+ var enemy = new EnemyAircraft();
+ enemy.x = 200 + Math.random() * 1648; // Random x position
+ enemy.y = -50; // Start above screen
+ enemy.startX = enemy.x;
+ enemies.push(enemy);
+ game.addChild(enemy);
+}
+// Spawn power-up
+function spawnPowerUp() {
+ var powerUp = new PowerUp();
+ powerUp.x = 200 + Math.random() * 1648;
+ powerUp.y = -50;
+ powerUps.push(powerUp);
+ game.addChild(powerUp);
+}
+// Main game update loop
+game.update = function () {
+ difficultyTimer++;
+ // Increase difficulty over time
+ if (difficultyTimer % 1800 === 0) {
+ // Every 30 seconds
+ enemySpawnRate = Math.max(40, enemySpawnRate - 10);
+ }
+ // Spawn enemies
+ if (LK.ticks % enemySpawnRate === 0) {
+ spawnEnemy();
+ }
+ // Spawn power-ups
+ if (LK.ticks % powerUpSpawnRate === 0) {
+ spawnPowerUp();
+ }
+ // 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
+ var hitEnemy = false;
+ for (var e = enemies.length - 1; e >= 0; e--) {
+ if (bullet.intersects(enemies[e])) {
+ LK.setScore(LK.getScore() + 100);
+ scoreTxt.setText('Score: ' + LK.getScore());
+ // Flash effect on enemy hit
+ LK.effects.flashObject(enemies[e], 0xFFFFFF, 200);
+ LK.getSound('enemyHit').play();
+ enemies[e].destroy();
+ enemies.splice(e, 1);
+ bullet.destroy();
+ playerBullets.splice(i, 1);
+ hitEnemy = true;
+ break;
+ }
+ }
+ if (hitEnemy) continue;
+ 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 <= 2762 && bullet.y > 2762) {
+ bullet.destroy();
+ enemyBullets.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (bullet.intersects(player)) {
+ LK.effects.flashScreen(0xFF0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ 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 <= 2762 && enemy.y > 2762) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player)) {
+ LK.effects.flashScreen(0xFF0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ 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 <= 2762 && powerUp.y > 2762) {
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (powerUp.intersects(player)) {
+ LK.setScore(LK.getScore() + 50);
+ scoreTxt.setText('Score: ' + LK.getScore());
+ // Reduce player fire rate for power-up effect
+ player.fireRate = Math.max(5, player.fireRate - 2);
+ LK.getSound('powerUpCollect').play();
+ LK.effects.flashObject(player, 0x00FF00, 500);
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ continue;
+ }
+ powerUp.lastY = powerUp.y;
+ }
+};
\ No newline at end of file
2D Düz bir savaş uçağı. In-Game asset. 2d. High contrast. No shadows
Lazer Işını Mermisi Düz In-Game asset. 2d. High contrast. No shadows
Power Up Simgesi. In-Game asset. 2d. High contrast. No shadows
Enemy Plane. In-Game asset. 2d. High contrast. No shadows
Piksel Kalp Resmi. In-Game asset. 2d. High contrast. No shadows