User prompt
Sözsüz ve biraz heyecan katman bir şarkı koy
User prompt
Create a background
User prompt
Remove the scrolling background
User prompt
Make 1 background
User prompt
Oyunda 16 tanearka plan olsun ve arka plan y oku ile yukarıdan aşağıya doğru ilerlesin
User prompt
Y oku aşağıdan yuxarıya doğru hareket eden background oluştur ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyuncunun skoru 50 artınca mermi hızını 10% büyüklüğünü ise 2.5% artır
User prompt
Düşmanların ateşi oyuncuya doğru gelsin
User prompt
Mermi atışını 50% azaltıp hızını 40%artır
Code edit (1 edits merged)
Please save this source code
User prompt
Sky Defender
Initial prompt
Bana üstten görüntülü hareket eden bir oyuncu ve bu oyuncuya saldıran düşmanlar ve oyuncu onlara ateş ederek yok ediyor. Yok ettiği düşmanlarla skor kazanıyor ve skor sol üst köşede görünüyor ve skor arttıkca düşmanlar artıyor ve ateş atan düşmanlar geliyor
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemyShip', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.health = 1; self.canShoot = false; self.shootTimer = 0; self.shootInterval = 120; // 2 seconds at 60fps self.update = function () { self.y += self.speed; if (self.canShoot) { self.shootTimer++; if (self.shootTimer >= self.shootInterval) { self.shootTimer = 0; // Create enemy bullet 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 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('playerShip', { anchorX: 0.5, anchorY: 0.5 }); self.shootCooldown = 0; self.shootRate = 10; // Can shoot every 10 frames self.update = function () { if (self.shootCooldown > 0) { self.shootCooldown--; } }; self.shoot = function () { if (self.shootCooldown <= 0) { var bullet = new PlayerBullet(); bullet.x = self.x; bullet.y = self.y - 40; playerBullets.push(bullet); game.addChild(bullet); self.shootCooldown = self.shootRate; LK.getSound('shoot').play(); } }; 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 = -12; self.update = function () { self.y += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000033 }); /**** * Game Code ****/ // Game variables var player; var enemies = []; var playerBullets = []; var enemyBullets = []; var enemySpawnTimer = 0; var enemySpawnRate = 90; // Start spawning every 1.5 seconds var dragNode = null; var gameSpeed = 1; // Create score display var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0, 0); scoreTxt.x = 120; // Avoid top-left menu area scoreTxt.y = 50; LK.gui.addChild(scoreTxt); // Create player player = new Player(); player.x = 1024; // Center horizontally player.y = 2400; // Near bottom of screen game.addChild(player); // Game event handlers game.move = function (x, y, obj) { if (dragNode) { dragNode.x = Math.max(40, Math.min(2008, x)); // Keep within screen bounds dragNode.y = Math.max(40, Math.min(2692, y)); } }; game.down = function (x, y, obj) { dragNode = player; game.move(x, y, obj); // Auto-shoot when touching player.shoot(); }; game.up = function (x, y, obj) { dragNode = null; }; // Main game update loop game.update = function () { // Update enemy spawn rate based on score var score = LK.getScore(); if (score > 20) { enemySpawnRate = 45; // Spawn every 0.75 seconds } if (score > 50) { enemySpawnRate = 30; // Spawn every 0.5 seconds } // Spawn enemies enemySpawnTimer++; if (enemySpawnTimer >= enemySpawnRate) { enemySpawnTimer = 0; var enemy = new Enemy(); enemy.x = Math.random() * 1800 + 124; // Random x position within screen enemy.y = -50; // Start above screen // Advanced enemies can shoot back if (score > 10) { enemy.canShoot = true; enemy.shootInterval = 90 + Math.random() * 60; // Vary shoot timing } if (score > 30) { enemy.speed = 4; // Faster enemies } enemies.push(enemy); game.addChild(enemy); } // Auto-shoot for player when dragging if (dragNode === player) { player.shoot(); } // Check player bullet collisions with enemies for (var i = playerBullets.length - 1; i >= 0; i--) { var bullet = playerBullets[i]; // Remove bullets that go off screen if (bullet.y < -50) { 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)) { // Enemy hit LK.getSound('enemyHit').play(); LK.effects.flashObject(enemy, 0xffffff, 200); enemy.health--; if (enemy.health <= 0) { // Enemy destroyed LK.setScore(LK.getScore() + 1); scoreTxt.setText('Score: ' + LK.getScore()); enemy.destroy(); enemies.splice(j, 1); } bullet.destroy(); playerBullets.splice(i, 1); break; } } } // Check enemy bullet collisions with player for (var k = enemyBullets.length - 1; k >= 0; k--) { var enemyBullet = enemyBullets[k]; // Remove bullets that go off screen if (enemyBullet.y > 2782) { enemyBullet.destroy(); enemyBullets.splice(k, 1); continue; } // Check collision with player if (enemyBullet.intersects(player)) { // Player hit - game over LK.getSound('explosion').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } // Check enemy collisions with player for (var m = enemies.length - 1; m >= 0; m--) { var enemy = enemies[m]; // Remove enemies that go off screen if (enemy.y > 2782) { enemy.destroy(); enemies.splice(m, 1); continue; } // Check collision with player if (enemy.intersects(player)) { // Player hit by enemy ship - game over LK.getSound('explosion').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,235 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Enemy = Container.expand(function () {
+ var self = Container.call(this);
+ var enemyGraphics = self.attachAsset('enemyShip', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3;
+ self.health = 1;
+ self.canShoot = false;
+ self.shootTimer = 0;
+ self.shootInterval = 120; // 2 seconds at 60fps
+ self.update = function () {
+ self.y += self.speed;
+ if (self.canShoot) {
+ self.shootTimer++;
+ if (self.shootTimer >= self.shootInterval) {
+ self.shootTimer = 0;
+ // Create enemy bullet
+ 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 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('playerShip', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.shootCooldown = 0;
+ self.shootRate = 10; // Can shoot every 10 frames
+ self.update = function () {
+ if (self.shootCooldown > 0) {
+ self.shootCooldown--;
+ }
+ };
+ self.shoot = function () {
+ if (self.shootCooldown <= 0) {
+ var bullet = new PlayerBullet();
+ bullet.x = self.x;
+ bullet.y = self.y - 40;
+ playerBullets.push(bullet);
+ game.addChild(bullet);
+ self.shootCooldown = self.shootRate;
+ LK.getSound('shoot').play();
+ }
+ };
+ 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 = -12;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x000033
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var enemies = [];
+var playerBullets = [];
+var enemyBullets = [];
+var enemySpawnTimer = 0;
+var enemySpawnRate = 90; // Start spawning every 1.5 seconds
+var dragNode = null;
+var gameSpeed = 1;
+// Create score display
+var scoreTxt = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0, 0);
+scoreTxt.x = 120; // Avoid top-left menu area
+scoreTxt.y = 50;
+LK.gui.addChild(scoreTxt);
+// Create player
+player = new Player();
+player.x = 1024; // Center horizontally
+player.y = 2400; // Near bottom of screen
+game.addChild(player);
+// Game event handlers
+game.move = function (x, y, obj) {
+ if (dragNode) {
+ dragNode.x = Math.max(40, Math.min(2008, x)); // Keep within screen bounds
+ dragNode.y = Math.max(40, Math.min(2692, y));
+ }
+};
+game.down = function (x, y, obj) {
+ dragNode = player;
+ game.move(x, y, obj);
+ // Auto-shoot when touching
+ player.shoot();
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Main game update loop
+game.update = function () {
+ // Update enemy spawn rate based on score
+ var score = LK.getScore();
+ if (score > 20) {
+ enemySpawnRate = 45; // Spawn every 0.75 seconds
+ }
+ if (score > 50) {
+ enemySpawnRate = 30; // Spawn every 0.5 seconds
+ }
+ // Spawn enemies
+ enemySpawnTimer++;
+ if (enemySpawnTimer >= enemySpawnRate) {
+ enemySpawnTimer = 0;
+ var enemy = new Enemy();
+ enemy.x = Math.random() * 1800 + 124; // Random x position within screen
+ enemy.y = -50; // Start above screen
+ // Advanced enemies can shoot back
+ if (score > 10) {
+ enemy.canShoot = true;
+ enemy.shootInterval = 90 + Math.random() * 60; // Vary shoot timing
+ }
+ if (score > 30) {
+ enemy.speed = 4; // Faster enemies
+ }
+ enemies.push(enemy);
+ game.addChild(enemy);
+ }
+ // Auto-shoot for player when dragging
+ if (dragNode === player) {
+ player.shoot();
+ }
+ // Check player bullet collisions with enemies
+ for (var i = playerBullets.length - 1; i >= 0; i--) {
+ var bullet = playerBullets[i];
+ // Remove bullets that go off screen
+ if (bullet.y < -50) {
+ 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)) {
+ // Enemy hit
+ LK.getSound('enemyHit').play();
+ LK.effects.flashObject(enemy, 0xffffff, 200);
+ enemy.health--;
+ if (enemy.health <= 0) {
+ // Enemy destroyed
+ LK.setScore(LK.getScore() + 1);
+ scoreTxt.setText('Score: ' + LK.getScore());
+ enemy.destroy();
+ enemies.splice(j, 1);
+ }
+ bullet.destroy();
+ playerBullets.splice(i, 1);
+ break;
+ }
+ }
+ }
+ // Check enemy bullet collisions with player
+ for (var k = enemyBullets.length - 1; k >= 0; k--) {
+ var enemyBullet = enemyBullets[k];
+ // Remove bullets that go off screen
+ if (enemyBullet.y > 2782) {
+ enemyBullet.destroy();
+ enemyBullets.splice(k, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemyBullet.intersects(player)) {
+ // Player hit - game over
+ LK.getSound('explosion').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
+ // Check enemy collisions with player
+ for (var m = enemies.length - 1; m >= 0; m--) {
+ var enemy = enemies[m];
+ // Remove enemies that go off screen
+ if (enemy.y > 2782) {
+ enemy.destroy();
+ enemies.splice(m, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player)) {
+ // Player hit by enemy ship - game over
+ LK.getSound('explosion').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
+};
\ No newline at end of file
Üstten görünen 2D bir ejder sırt kısmı görünsün ve kuyruğu düz kanatları 75% açık olsun. In-Game asset. 2d. High contrast. No shadows
Üstten görünen bulutlu bir hava va aşağıda dağlar ve orta çağ kasabası. In-Game asset. 2d. High contrast. No shadows
Üstten görünümlü sırt kısmı tarafı ve kafası aşağı doğru oyuncuya bakan bir yaratık. In-Game asset. 2d. High contrast. No shadows
Alev topu alevi aşağı doru olan. In-Game asset. 2d. High contrast. No shadows
Karanlık morumsu ateşi yukarı doğru olan alev topu. In-Game asset. 2d. High contrast. No shadows