User prompt
oku attığım yere doğru eğimli gitsin
User prompt
skor eksi 25 olduğunda oyun kaybedilsin
User prompt
fare ve tavşan, geyik ve domuzdan daha fazla olsun
User prompt
fare ve tavşan geyik ve domuzdan 3 kat fazla spawn olsun
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading '__colorFlash_current_tick')' in or related to this line: 'LK.effects.flashObject(newAnimal, 0xffffff, 200);' Line Number: 329
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading '__colorFlash_current_tick')' in or related to this line: 'LK.effects.flashObject(newAnimal, 0xffffff, 200);' Line Number: 329
User prompt
4 tane fare, 3 tane tavşan oluşsun
User prompt
fare ve tavşan geyik ve domuzdan fazla daha fazla sayıda spawn olsun
User prompt
score 50 olduğunda kazan_mak sesini çal
User prompt
score 50 olduğunda kazanma sesini çal
User prompt
fare ve tavşan vurulduğunda fare_vurma sesi çalın
User prompt
aynısını geyik için yap
User prompt
domuzu vuruduğumda domuz_vurma sesini oynat
User prompt
arka plan ayarlamak istiyorum
User prompt
fare eksi 2 puan , tavşan eksi 1 puan olsun
User prompt
fare eksi 1 puan , tavşan eksi 2 puan olsun
User prompt
son iki komutumu geri al
User prompt
geyik ve domuz kenarlara çarptığında yok olmasın
User prompt
geyik ve domuz kenarlara çarptığında yok olsun
User prompt
ok sınırsız olsun her tıkladığımda yenisi atılsın
User prompt
yay görünsün
User prompt
oku tıkladığım yere atsın
Code edit (1 edits merged)
Please save this source code
Initial prompt
Okçu Avcı: Ormanda Hayvan Avı
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Hayvan Sınıfı (Base) var Animal = Container.expand(function () { var self = Container.call(this); // Bu sınıf doğrudan kullanılmaz, alt sınıflar kullanır. self.speed = 6; self.dirX = 0; self.dirY = 0; self.point = 1; self.assetId = ''; self.asset = null; // Hareket yönünü rastgele ayarla self.setRandomDirection = function () { var angle = Math.random() * Math.PI * 2; self.dirX = Math.cos(angle); self.dirY = Math.sin(angle); }; // Ekran kenarına çarptığında yön değiştir self.bounceIfNeeded = function () { var margin = 40; if (self.x < margin) self.dirX = Math.abs(self.dirX); if (self.x > 2048 - margin) self.dirX = -Math.abs(self.dirX); if (self.y < 200) self.dirY = Math.abs(self.dirY); if (self.y > 2732 - margin) self.dirY = -Math.abs(self.dirY); }; self.update = function () { self.x += self.dirX * self.speed; self.y += self.dirY * self.speed; self.bounceIfNeeded(); }; return self; }); // Tavşan (Rabbit) var Rabbit = Animal.expand(function () { var self = Animal.call(this); self.assetId = 'rabbit'; self.point = -1; // Tavşan vurunca -1 puan// DEĞİŞTİ self.speed = 8 + Math.random() * 2; self.asset = self.attachAsset('rabbit', { anchorX: 0.5, anchorY: 0.5 }); self.setRandomDirection(); return self; }); // Fare (Mouse) var Mouse = Animal.expand(function () { var self = Animal.call(this); self.assetId = 'mouse'; self.point = -2; // Fare vurunca -2 puan// DEĞİŞTİ self.speed = 10 + Math.random() * 2; self.asset = self.attachAsset('mouse', { anchorX: 0.5, anchorY: 0.5 }); self.setRandomDirection(); return self; }); // Ceylan (Deer) var Deer = Animal.expand(function () { var self = Animal.call(this); self.assetId = 'deer'; self.point = 4; self.speed = 7 + Math.random() * 2; self.asset = self.attachAsset('deer', { anchorX: 0.5, anchorY: 0.5 }); self.setRandomDirection(); return self; }); // Domuz (Boar) var Boar = Animal.expand(function () { var self = Animal.call(this); self.assetId = 'boar'; self.point = 3; self.speed = 6 + Math.random() * 2; self.asset = self.attachAsset('boar', { anchorX: 0.5, anchorY: 0.5 }); self.setRandomDirection(); return self; }); // Ok (Arrow) Sınıfı var Arrow = Container.expand(function () { var self = Container.call(this); var arrowAsset = self.attachAsset('arrow', { anchorX: 0.5, anchorY: 1 }); self.speed = -32; // Okun yukarıya hızı self.update = function () { // Okun yönü ve hızı atanmışsa onları kullan if (typeof self.vx === "number" && typeof self.vy === "number") { self.x += self.vx; self.y += self.vy; } else { self.y += self.speed; } }; return self; }); // Yay (Bow) Sınıfı var Bow = Container.expand(function () { var self = Container.call(this); // Yay görseli için placeholder: kahverengi kutu ve yay şekli // Kullanıcı kendi görselini ekleyebilir, burada basit bir kutu ile gösteriyoruz self.asset = self.attachAsset('bow', { anchorX: 0.5, anchorY: 1 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2e4d1b // Orman yeşili }); /**** * Game Code ****/ // Skor göstergesi // Hayvan ve ok görselleri kullanıcı tarafından eklenecektir. Şimdilik placeholder şekiller kullanıyoruz. var scoreTxt = new Text2('0', { size: 120, fill: 0xFFF700 }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Yay (bow) sabit pozisyonu var bowStartX = 2048 / 2; var bowStartY = 2732 - 80; var bow = null; // Ok (arrow) sabit pozisyonu var arrowStartX = 2048 / 2; var arrowStartY = 2732 - 180; // Ok objeleri dizisi (birden fazla ok olabilir) var arrows = []; // Hayvanlar dizisi var animals = []; // Hayvanları başlat function spawnAnimals() { // FARE ve TAVŞAN daha fazla olacak şekilde başlat var margin = 200; // 1 geyik var deer = new Deer(); deer.x = margin + Math.random() * (2048 - 2 * margin); deer.y = 600 + Math.random() * 600; animals.push(deer); game.addChild(deer); // 1 domuz var boar = new Boar(); boar.x = margin + Math.random() * (2048 - 2 * margin); boar.y = 900 + Math.random() * 600; animals.push(boar); game.addChild(boar); // 2 tavşan for (var i = 0; i < 2; i++) { var rabbit = new Rabbit(); rabbit.x = margin + Math.random() * (2048 - 2 * margin); rabbit.y = 1200 + Math.random() * 600; animals.push(rabbit); game.addChild(rabbit); } // 2 fare for (var i = 0; i < 2; i++) { var mouse = new Mouse(); mouse.x = margin + Math.random() * (2048 - 2 * margin); mouse.y = 1500 + Math.random() * 600; animals.push(mouse); game.addChild(mouse); } } // Ok objesini başlat function resetArrow() { // Artık tek bir ok yok, bu fonksiyon kullanılmayacak. } // Skoru güncelle function updateScoreText() { scoreTxt.setText(LK.getScore()); } // Oyun başlangıcı spawnAnimals(); // Yay objesini başlat ve ekle if (bow) { bow.destroy(); bow = null; } bow = new Bow(); bow.x = bowStartX; bow.y = bowStartY; game.addChild(bow); resetArrow(); updateScoreText(); // Ok atma işlemi (ekrana dokununca) game.down = function (x, y, obj) { // Yeni bir ok oluştur ve diziye ekle var newArrow = new Arrow(); newArrow.x = arrowStartX; newArrow.y = arrowStartY; // Hedef noktaya vektör hesapla var dx = x - newArrow.x; var dy = y - newArrow.y; var length = Math.sqrt(dx * dx + dy * dy); var speed = 32; if (length > 0) { newArrow.vx = dx / length * speed; newArrow.vy = dy / length * speed; } else { newArrow.vx = 0; newArrow.vy = -speed; } game.addChild(newArrow); arrows.push(newArrow); LK.getSound('arrow_shot').play(); }; // Oyun güncelleme döngüsü game.update = function () { // Hayvanları güncelle for (var i = 0; i < animals.length; i++) { animals[i].update(); } // Tüm okları güncelle for (var a = arrows.length - 1; a >= 0; a--) { var arrowObj = arrows[a]; arrowObj.update(); // Ok ekran dışına çıktıysa yok et if (arrowObj.y < -100) { arrowObj.destroy(); arrows.splice(a, 1); continue; } // Ok ve hayvan çarpışması kontrolü for (var i = animals.length - 1; i >= 0; i--) { var animal = animals[i]; if (arrowObj.intersects(animal)) { // Skoru artır LK.setScore(LK.getScore() + animal.point); updateScoreText(); // Domuz vurulduysa sesi çal if (animal.assetId === 'boar') { LK.getSound('domuz_vurma').play(); } // Geyik vurulduysa sesi çal if (animal.assetId === 'deer') { LK.getSound('domuz_vurma').play(); } // Fare veya tavşan vurulduysa sesi çal if (animal.assetId === 'mouse' || animal.assetId === 'rabbit') { LK.getSound('fare_vurma').play(); } // Hayvanı yok et ve yenisini oluştur animal.destroy(); animals.splice(i, 1); // Yeni hayvanı aynı türden ekle var newAnimal; if (animal.assetId === 'deer') { newAnimal = new Deer(); } else if (animal.assetId === 'boar') { newAnimal = new Boar(); } else if (animal.assetId === 'rabbit') { newAnimal = new Rabbit(); } else { newAnimal = new Mouse(); } // Rastgele konum var margin = 200; newAnimal.x = margin + Math.random() * (2048 - 2 * margin); newAnimal.y = 400 + Math.random() * 1800; animals.push(newAnimal); game.addChild(newAnimal); // Vurulan hayvanı kısa bir renk efektiyle göster LK.effects.flashObject(newAnimal, 0xffffff, 200); // Oku yok et arrowObj.destroy(); arrows.splice(a, 1); // Skor 50 veya üstü ise oyunu bitir if (LK.getScore() >= 50) { LK.showYouWin(); return; } // Skor -25 veya daha düşükse oyunu kaybettir if (LK.getScore() <= -25) { LK.showGameOver(); return; } break; // Bu ok başka hayvanı vuramaz, döngüden çık } } } }; // Okun sabit pozisyonda görünmesi için move/up eventlerine gerek yok. // Oyun sadece dokunma ile ok fırlatıyor ve ok uçarken tekrar atılamıyor.
===================================================================
--- original.js
+++ change.js
@@ -289,8 +289,13 @@
if (LK.getScore() >= 50) {
LK.showYouWin();
return;
}
+ // Skor -25 veya daha düşükse oyunu kaybettir
+ if (LK.getScore() <= -25) {
+ LK.showGameOver();
+ return;
+ }
break; // Bu ok başka hayvanı vuramaz, döngüden çık
}
}
}
ok istiyorum eski zamanlarda hayvan avalrken kullanılan oklardan. In-Game asset. 2d. High contrast. No shadows
tatlı bir pembe domuz. In-Game asset. 2d. High contrast. No shadows
avcılıkta kullanılan yay. In-Game asset. 2d. High contrast. No shadows
tatlı bir ceylan. In-Game asset. 2d. High contrast. No shadows
tatlı bir beyaz fare. In-Game asset. 2d. High contrast. No shadows
tatli bir siyah beyaz tavşan. In-Game asset. 2d. High contrast. No shadows