User prompt
level sayısını göster 100
User prompt
ekranda göster
Code edit (1 edits merged)
Please save this source code
User prompt
game.js sil
User prompt
(l14) Sil
User prompt
L14 sil
User prompt
her seviyede 5 dalga düşman olsun ve sayıları değişken olsun
User prompt
defans oyunu yap
User prompt
My weapon should be able to reach every part of the screen, be easy to control, have tracers and fire bullets.
User prompt
silahımız ekranın tamamına ulaşabilsin ve kontrolü kolay olsun
User prompt
yıldızlar ve uzay boşluğu arka planda olsun
User prompt
arkaplanı manzara resmi koy
User prompt
müzik ekle
User prompt
düşman çoğaldıkça mermi yoğunluğu artsın
User prompt
düşman hızı yavaş ve her aşamada aynı olsun
User prompt
silahtan çıkan mermiler çoklu olsun ve alana yayılsın
User prompt
düşman hızı yavaş olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Horde Defense: Sonsuz Dalga
Initial prompt
hordo defense tarzında bir oyun yaparmısın
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Düşman Sınıfı var Enemy = Container.expand(function () { var self = Container.call(this); // Düşman grafiği var enemyGfx = self.attachAsset('enemyBox', { anchorX: 0.5, anchorY: 0.5 }); enemyGfx.width = 140; enemyGfx.height = 140; // Hız (her dalgada artmaz, sabit ve yavaş) self.speed = 1.2; // Düşman güncellemesi self.update = function () { self.y += self.speed; }; // Düşman vurulduğunda self.hit = function () { // Yok olma animasyonu tween(self, { alpha: 0, scaleX: 1.5, scaleY: 1.5 }, { duration: 180, easing: tween.cubicOut, onFinish: function onFinish() { self.destroy(); } }); }; return self; }); // Kahraman (Hero) Sınıfı var Hero = Container.expand(function () { var self = Container.call(this); // Kahraman grafiği var heroGfx = self.attachAsset('heroBox', { anchorX: 0.5, anchorY: 0.5 }); // Kahraman boyutunu ayarla (büyük ve kolay kontrol edilebilir) heroGfx.width = 180; heroGfx.height = 180; // Kahraman başlangıç canı self.hp = 1; // Kahraman ölü mü? self.isDead = false; // Kahraman vurulduğunda çağrılır self.hit = function () { if (self.isDead) { return; } self.isDead = true; // Kırmızıya flaşla LK.effects.flashObject(self, 0xff0000, 600); // Ekranı flaşla LK.effects.flashScreen(0xff0000, 800); // Oyun biter LK.showGameOver(); }; return self; }); // Kahraman Mermisi Sınıfı var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGfx = self.attachAsset('heroBullet', { anchorX: 0.5, anchorY: 0.5 }); bulletGfx.width = 40; bulletGfx.height = 80; // Tracer efekti için bir iz bırakma noktası oluştur var tracer = LK.getAsset('heroBullet', { anchorX: 0.5, anchorY: 1, width: 10, height: 60, color: 0x00e0ff }); tracer.alpha = 0.25; tracer.y = bulletGfx.height / 2; self.addChild(tracer); // Açılı mermi desteği için vx, vy ekle self.speed = -22; self.angle = 0; // derece cinsinden, yukarı doğru 0 self.vx = 0; self.vy = self.speed; self.setAngle = function (deg) { // Dereceyi radyana çevir var rad = deg * Math.PI / 180; self.angle = deg; self.vx = Math.sin(rad) * Math.abs(self.speed); self.vy = -Math.cos(rad) * Math.abs(self.speed); // Tracer açısını da ayarla tracer.rotation = rad; }; self.update = function () { self.x += self.vx; self.y += self.vy; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x181c2c }); /**** * Game Code ****/ // Oyun değişkenleri var hero; var enemies = []; var heroBullets = []; var currentLevel = 100; // Level 100 gösterilecek var currentWave = 1; var waveEnemyCounts = [[3, 4, 5, 6, 7], // Level 1: 5 wave, her dalgada farklı düşman sayısı [5, 6, 7, 8, 9], // Level 2 [7, 8, 9, 10, 12], // Level 3 [10, 12, 14, 16, 18], // Level 4 [15, 17, 19, 21, 25] // Level 5 ]; var maxLevel = waveEnemyCounts.length; var maxWave = 5; var isSpawning = false; var canShoot = true; var shootInterval = 300; // ms var lastShootTime = 0; // Level göstergesi ekle var levelText = new Text2("LEVEL: 100", { size: 100, fill: "#fff" }); levelText.anchor.set(0.5, 0); LK.gui.top.addChild(levelText); levelText.y = 20; levelText.x = 2048 / 2; // Kahramanı ekrana yerleştir function spawnHero() { hero = new Hero(); hero.x = 2048 / 2; hero.y = 2732 - 300; game.addChild(hero); } // Düşmanları ekrana yerleştir function spawnWave(level, wave) { // Düşmanları temizle for (var i = 0; i < enemies.length; i++) { if (enemies[i] && enemies[i].parent) enemies[i].destroy(); } enemies = []; var count = waveEnemyCounts[(level - 1) % waveEnemyCounts.length][(wave - 1) % maxWave]; var spacing = 2048 / (count + 1); for (var i = 0; i < count; i++) { var enemy = new Enemy(); enemy.x = spacing * (i + 1); enemy.y = 200; enemies.push(enemy); game.addChild(enemy); } } // Kahraman ateş etsin function heroShoot() { if (!hero || hero.isDead) return; var bullet = new HeroBullet(); bullet.x = hero.x; bullet.y = hero.y - 100; bullet.setAngle(0); heroBullets.push(bullet); game.addChild(bullet); } // Dalga ve seviye ilerlet function nextWaveOrLevel() { currentWave++; if (currentWave > maxWave) { currentWave = 1; currentLevel++; if (currentLevel > maxLevel) { LK.showYouWin(); return; } } spawnWave(currentLevel, currentWave); } // Oyun başlangıcı spawnHero(); spawnWave(currentLevel, currentWave); // Kahramanı sürükle var dragging = false; game.down = function (x, y, obj) { if (hero && !hero.isDead) { dragging = true; hero.x = x; hero.y = y; } }; game.move = function (x, y, obj) { if (dragging && hero && !hero.isDead) { hero.x = x; hero.y = y; } }; game.up = function (x, y, obj) { dragging = false; }; // Oyun döngüsü game.update = function () { // Kahraman mermilerini güncelle for (var i = heroBullets.length - 1; i >= 0; i--) { var b = heroBullets[i]; b.update(); // Ekran dışına çıktıysa sil if (b.y < -100) { b.destroy(); heroBullets.splice(i, 1); continue; } // Düşmanlara çarpma kontrolü for (var j = enemies.length - 1; j >= 0; j--) { var e = enemies[j]; if (b.intersects(e)) { e.hit(); b.destroy(); heroBullets.splice(i, 1); enemies.splice(j, 1); break; } } } // Düşmanları güncelle for (var i = enemies.length - 1; i >= 0; i--) { var e = enemies[i]; e.update(); // Kahramana çarptı mı? if (hero && !hero.isDead && e.intersects(hero)) { hero.hit(); } // Ekran dışına çıktıysa sil if (e.y > 2732 + 100) { e.destroy(); enemies.splice(i, 1); } } // Dalga bitti mi? if (enemies.length === 0 && !hero.isDead) { nextWaveOrLevel(); } // Kahraman otomatik ateş etsin var now = Date.now(); if (canShoot && !hero.isDead && now - lastShootTime > shootInterval) { heroShoot(); lastShootTime = now; } };
===================================================================
--- original.js
+++ change.js
@@ -123,9 +123,9 @@
// Oyun değişkenleri
var hero;
var enemies = [];
var heroBullets = [];
-var currentLevel = 1;
+var currentLevel = 100; // Level 100 gösterilecek
var currentWave = 1;
var waveEnemyCounts = [[3, 4, 5, 6, 7],
// Level 1: 5 wave, her dalgada farklı düşman sayısı
[5, 6, 7, 8, 9],
@@ -141,8 +141,17 @@
var isSpawning = false;
var canShoot = true;
var shootInterval = 300; // ms
var lastShootTime = 0;
+// Level göstergesi ekle
+var levelText = new Text2("LEVEL: 100", {
+ size: 100,
+ fill: "#fff"
+});
+levelText.anchor.set(0.5, 0);
+LK.gui.top.addChild(levelText);
+levelText.y = 20;
+levelText.x = 2048 / 2;
// Kahramanı ekrana yerleştir
function spawnHero() {
hero = new Hero();
hero.x = 2048 / 2;
uzay aracı olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
ahtapot şekilli canavar olsun. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
uzay aracı olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat