User prompt
müziği kaldır
Code edit (1 edits merged)
Please save this source code
User prompt
Yazılar yavaş Yavas çıksın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Müzik her zamn çalsın
Code edit (1 edits merged)
Please save this source code
User prompt
Akarsuyu ekle
Code edit (8 edits merged)
Please save this source code
User prompt
Turuncuya gidince kırım) maviye Gidince kırıklı bilgisini versin
User prompt
2 Ayrı Simge oluştur Dağa geliince Bu simelerden birine gelince kıvrımlıya da kırıklı bilgisini versin
User prompt
Haritayı değiştir dqağa gelince
User prompt
Dağa geldiğimizde ayrı bir arka plana geçilsin ve kıvırımlındqğnve kırıklığı
User prompt
karakteri nere hareket ettirirsek o tarafa dönsn ve yürüme animasyonu ekleyelim
Code edit (1 edits merged)
Please save this source code
User prompt
eski haline çevir son yaptığın şeyi iptal et
User prompt
yazıyı ekranın ortasına al o bilgi kısmını
User prompt
oyun sonsuz olsun her zaman donabilelim
User prompt
tekrardan simgelere donaabilelim ve bilgiler ortaya yazılsın
/**** * Classes ****/ // Karakter (Character) class var Character = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('character', { anchorX: 0.5, anchorY: 1.0 }); self.speed = 0; // Karakteri sürükleyerek hareket ettireceğiz // Yürüme animasyonu için parametreler self.walkAnimTime = 0; self.isWalking = false; self.lastX = undefined; self.lastY = undefined; self.facing = 1; // 1: sağ, -1: sol // Yürüme animasyonu ve yön için update fonksiyonu self.update = function () { // İlk frame'de lastX/Y ayarla if (self.lastX === undefined) { self.lastX = self.x; } if (self.lastY === undefined) { self.lastY = self.y; } // Hareket algıla var moved = self.x !== self.lastX || self.y !== self.lastY; self.isWalking = moved; // Yön belirle (sadece x değişimine bak) if (self.x > self.lastX) { self.facing = 1; } else if (self.x < self.lastX) { self.facing = -1; } // Sprite'ı yöne göre çevir asset.scaleX = self.facing; // Yürüme animasyonu (basit yukarı-aşağı zıplatma) if (self.isWalking) { self.walkAnimTime += 1; // 0.15 ile 0.25 arası bir zıplama efekti asset.y = Math.sin(self.walkAnimTime * 0.25) * 18; } else { self.walkAnimTime = 0; asset.y = 0; } // Son pozisyonu güncelle self.lastX = self.x; self.lastY = self.y; }; return self; }); // Göl (Lake) class var Lake = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('lake', { anchorX: 0.5, anchorY: 1.0 }); asset.alpha = 0; self.info = "Göl: Karalar üzerindeki çukur alanlarda birikmiş tatlı veya tuzlu su kütleleridir."; self.type = "lake"; return self; }); // Yerşekilleri listesini oluştur // Dağ (Mountain) class var Mountain = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('mountain', { anchorX: 0.5, anchorY: 1.0 }); asset.alpha = 0; self.info = "Dağ: Yüksek ve dik yamaçlı yerşekilleridir. Zirveleri genellikle karla kaplıdır."; self.type = "mountain"; return self; }); // Ova (Plain) class var Plain = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('plain', { anchorX: 0.5, anchorY: 1.0 }); asset.alpha = 0; self.info = "Ova: Deniz seviyesine yakın, geniş ve düz alanlardır. Tarım için uygundur."; self.type = "plain"; return self; }); // Plato (Plateau) class var Plateau = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('plateau', { anchorX: 0.5, anchorY: 1.0 }); asset.alpha = 0; self.info = "Plato: Çevresine göre yüksek, düz ve geniş alanlardır."; self.type = "plateau"; return self; }); // Akarsu (River) class var River = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('river', { anchorX: 0.5, anchorY: 1.0 }); asset.alpha = 0; self.info = "Akarsu: Yeryüzünde belirli bir yatak boyunca sürekli veya zaman zaman akan su akıntısıdır."; self.type = "river"; return self; }); // Vadi (Valley) class var Valley = Container.expand(function () { var self = Container.call(this); var asset = self.attachAsset('valley', { anchorX: 10, anchorY: 1.0 }); asset.alpha = 0; self.info = "Vadi: Akarsuların aşındırmasıyla oluşan, iki yamaç arasında kalan çukurluklardır."; self.type = "valley"; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Yerşekilleri listesini oluştur var landforms = []; var discoveredLandforms = []; var infoText = null; // Gerçekçi arka planı ekle var background = LK.getAsset('realistic_map_bg', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: 2048, height: 2732 }); game.addChild(background); // Karakteri oluştur ve haritaya ekle var character = new Character(); character.x = 200; character.y = 2400; game.addChild(character); // Sürükleme için değişken var dragCharacter = false; // Harita üzerinde yerşekillerini konumlandır function createLandforms() { // Dağ var mountain = new Mountain(); mountain.x = 400; mountain.y = 1800 / 3; landforms.push(mountain); game.addChild(mountain); // Ova var plain = new Plain(); plain.x = 1600; plain.y = 1050; landforms.push(plain); game.addChild(plain); // Plato var plateau = new Plateau(); plateau.x = 1600; plateau.y = 1500; landforms.push(plateau); game.addChild(plateau); // Vadi var valley = new Valley(); valley.x = 400; valley.y = 1500; landforms.push(valley); game.addChild(valley); // Göl var lake = new Lake(); lake.x = 1600; lake.y = 600; landforms.push(lake); game.addChild(lake); // Akarsu var river = new River(); river.x = 1300; river.y = 1500; landforms.push(river); game.addChild(river); } // Bilgi kutusunu göster function showInfo(landform) { if (infoText) { infoText.destroy(); infoText = null; } infoText = new Text2(landform.info, { size: 80, fill: 0xFFFFFF, wordWrap: true, wordWrapWidth: 1200 }); infoText.anchor.set(0.5, 0); infoText.x = 12; infoText.y = 10; LK.gui.top.addChild(infoText); // Bilgi kutusu sürekli ekranda kalacak, yeni bir bilgi gösterilene kadar kaldırılmayacak } // Keşif kontrolü function checkDiscovery(x, y) { for (var i = 0; i < landforms.length; i++) { var lf = landforms[i]; // Basit mesafe kontrolü (dokunma/klik yakınlığı) var dx = lf.x - x; var dy = lf.y - y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 180) { showInfo(lf); if (discoveredLandforms.indexOf(lf.type) === -1) { discoveredLandforms.push(lf.type); } break; } } } // Karakteri sürüklemek için dokunma/klik başlatıldığında kontrol et game.down = function (x, y, obj) { // Eğer karaktere yakın bir noktadaysak sürüklemeyi başlat var dx = character.x - x; var dy = character.y - y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 180) { dragCharacter = true; } }; // Sürükleme sırasında karakteri hareket ettir game.move = function (x, y, obj) { if (dragCharacter) { character.x = x; character.y = y; if (typeof character.update === "function") { character.update(); } } }; // Sürükleme bırakıldığında durdur game.up = function (x, y, obj) { dragCharacter = false; }; // Oyun başlatıldığında yerşekillerini oluştur createLandforms(); // Her karede karakterin yerşekillerine yakınlığını kontrol et game.update = function () { if (typeof character.update === "function") { character.update(); } for (var i = 0; i < landforms.length; i++) { var lf = landforms[i]; var dx = lf.x - character.x; var dy = lf.y - character.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 180) { // Her yaklaşıldığında bilgi göster showInfo(lf); // İlk kez keşfediliyorsa kaydet if (discoveredLandforms.indexOf(lf.type) === -1) { discoveredLandforms.push(lf.type); } break; } } };
===================================================================
--- original.js
+++ change.js
@@ -176,10 +176,10 @@
landforms.push(plateau);
game.addChild(plateau);
// Vadi
var valley = new Valley();
- valley.x = 1600;
- valley.y = 1800 / 3;
+ valley.x = 400;
+ valley.y = 1500;
landforms.push(valley);
game.addChild(valley);
// Göl
var lake = new Lake();
@@ -254,9 +254,8 @@
dragCharacter = false;
};
// Oyun başlatıldığında yerşekillerini oluştur
createLandforms();
-LK.playMusic('metin2');
// Her karede karakterin yerşekillerine yakınlığını kontrol et
game.update = function () {
if (typeof character.update === "function") {
character.update();