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 = 1; 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; // 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
@@ -114,5 +114,148 @@
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x181c2c
-});
\ No newline at end of file
+});
+
+/****
+* Game Code
+****/
+// Oyun değişkenleri
+var hero;
+var enemies = [];
+var heroBullets = [];
+var currentLevel = 1;
+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;
+// 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;
+ }
+};
\ No newline at end of file
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