/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ // Golden Freddy karakteri var GoldenFreddy = Container.expand(function () { var self = Container.call(this); var gf = self.attachAsset('goldenfreddy', { anchorX: 0.5, anchorY: 0.5 }); self.active = false; self.appear = function (kapak) { if (kapak) { self.x = kapak.x; self.y = kapak.y - kapak.height / 2 - self.height / 2 + 40; } else { self.x = 2048 / 2; self.y = 2732 / 2; } self.visible = true; self.active = true; self.scale.x = 0.7; self.scale.y = 0.7; tween(self.scale, { x: 1, y: 1 }, { duration: 200, easing: tween.easeOut }); }; self.hide = function () { self.active = false; tween(self.scale, { x: 0.2, y: 0.2 }, { duration: 180, easing: tween.easeIn, onFinish: function onFinish() { self.visible = false; } }); }; self.down = function (x, y, obj) { if (!self.active) return; // Golden Freddy'ye basınca jumpscare! triggerJumpscare(); self.hide(); }; return self; }); // Ekstra kalp (can) class'ı var Heart = Container.expand(function () { var self = Container.call(this); // Kalp görseli (artık asset olarak kalp resmi) var heartAsset = self.attachAsset('heart', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); self.active = true; // Kalp'e dokununca self.down = function (x, y, obj) { if (!self.active) return; self.active = false; self.visible = false; // 1 can ekle if (typeof lives !== "undefined") { lives += 1; if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives); } // Kalbi yok et self.destroy(); }; return self; }); // Jumpscare efekti (ekranı kırmızıya boyar ve titretir) var Jumpscare = Container.expand(function () { var self = Container.call(this); var js = self.attachAsset('jumpscare', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); self.alpha = 0; self.visible = false; // Jumpscare başlat self.start = function () { self.visible = true; self.alpha = 0.8; // Titreme efekti var shakeCount = 0; var shakeMax = 10; var shakeTimer = LK.setInterval(function () { self.x = (Math.random() - 0.5) * 40; self.y = (Math.random() - 0.5) * 40; shakeCount++; if (shakeCount > shakeMax) { LK.clearInterval(shakeTimer); self.x = 0; self.y = 0; // Yavaşça kaybol tween(self, { alpha: 0 }, { duration: 400, onFinish: function onFinish() { self.visible = false; } }); } }, 30); }; return self; }); // Kapak (cover) class: farklı renkli kapaklar için var Kapak = Container.expand(function () { var self = Container.call(this); // Kapak indexine göre farklı asset kullan self.setKapakIndex = function (idx) { // Önce eski asset varsa kaldır if (self.kapakAsset) { self.removeChild(self.kapakAsset); } self.kapakIndex = idx; self.kapakAsset = self.attachAsset('kapak' + idx, { anchorX: 0.5, anchorY: 0.5 }); }; return self; }); // Springtrap karakteri var Springtrap = Container.expand(function () { var self = Container.call(this); // Karakteri ortalamak için anchor noktası ortada var st = self.attachAsset('springtrap', { anchorX: 0.5, anchorY: 0.5 }); // Springtrap'in aktif olup olmadığını tut self.active = false; // Springtrap'i kapakların birinin ortasında rastgele çıkar self.appear = function () { // Kapaklar globalde tanımlı if (typeof kapaklar !== "undefined" && kapaklar.length > 0) { var idx = Math.floor(Math.random() * kapaklar.length); var kapak = kapaklar[idx]; // Springtrap'i kapağın ortasına yerleştir self.x = kapak.x; self.y = kapak.y - kapak.height / 2 - self.height / 2 + 40; // Biraz kapağın üstünde çıksın } else { // Fallback: ortada göster self.x = 2048 / 2; self.y = 2732 / 2; } self.visible = true; self.active = true; // Hafifçe büyüyerek ortaya çıkma animasyonu self.scale.x = 0.7; self.scale.y = 0.7; tween(self.scale, { x: 1, y: 1 }, { duration: 200, easing: tween.easeOut }); }; // Springtrap'i uzaklaştır self.scareAway = function (_onFinish) { self.active = false; // 'Üzerine tıkla' yazısını gizle if (typeof tapHint !== "undefined") tapHint.visible = false; // Küçülerek kaybolma animasyonu tween(self.scale, { x: 0.2, y: 0.2 }, { duration: 180, easing: tween.easeIn, onFinish: function onFinish() { self.visible = false; if (_onFinish) _onFinish(); } }); }; // Springtrap'e dokunulduğunda self.down = function (x, y, obj) { if (!self.active) return; // Skoru artır, Springtrap'i uzaklaştır LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); LK.getSound('scare_away').play(); self.scareAway(function () { // Sonraki Springtrap için zamanlayıcı başlat scheduleNextSpringtrap(); }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x111111 }); /**** * Game Code ****/ // Golden Freddy asset // Skor metni // Springtrap karakteri için bir kutu şekli (daha sonra görsel ile değiştirilebilir) // Jumpscare efekti için kırmızı bir kutu // Springtrap uzaklaştırma efekti için kısa bir ses // Jumpscare için bir ses efekti // 6 farklı renkli kapaklar // Mavi // Kırmızı // Yeşil // Sarı // Mor // Lacivert var scoreTxt = new Text2('0', { size: 120, fill: 0xFFF700 }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // 6 farklı renkli kapakları ekle var kapaklar = []; var kapakCount = 6; var kapakSpacing = 120; // Aralıkları büyüttük var kapakWidth = 480; // Kapakları büyüttük var kapakHeight = 270; // Kapakları büyüttük // 2 satır, 3 sütun olacak şekilde ortala var cols = 3; var rows = 2; var totalWidth = cols * kapakWidth + (cols - 1) * kapakSpacing; var totalHeight = rows * kapakHeight + (rows - 1) * kapakSpacing; var startX = (2048 - totalWidth) / 2 + kapakWidth / 2; var startY = (2732 - totalHeight) / 2 + kapakHeight / 2; for (var i = 0; i < kapakCount; i++) { var kapak = new Kapak(); kapak.setKapakIndex(i); var row = Math.floor(i / cols); var col = i % cols; kapak.x = startX + col * (kapakWidth + kapakSpacing); kapak.y = startY + row * (kapakHeight + kapakSpacing); game.addChild(kapak); kapaklar.push(kapak); } // --- BAŞLAT MENÜSÜ EKLE --- var startMenuBg = LK.getAsset('centerCircle', { anchorX: 0, anchorY: 0, x: 0, y: 0, scaleX: 2048 / 100, scaleY: 2732 / 100 }); startMenuBg.tint = 0x0074D9; // mavi startMenuBg.alpha = 1; // Oyun ismi başlat menüsünde en üstte büyük olarak gösterilsin var startMenuGameName = new Text2('Springtrap Jumpscare', { size: 220, fill: 0xFFF700 }); startMenuGameName.anchor.set(0.5, 0.5); startMenuGameName.x = 2048 / 2; startMenuGameName.y = 2732 / 2 - 500; var startMenuText = new Text2('Başlamak için dokun', { size: 140, fill: 0xFFFFFF }); startMenuText.anchor.set(0.5, 0.5); startMenuText.x = 2048 / 2; startMenuText.y = 2732 / 2 - 100; // (İsteğe bağlı: eski başlık metni kaldırıldı, çünkü yukarıda büyük başlık var) // var startMenuTitle = new Text2('Springtrap Jumpscare', { // size: 180, // fill: 0xFFF700 // }); // startMenuTitle.anchor.set(0.5, 0.5); // startMenuTitle.x = 2048 / 2; // startMenuTitle.y = 2732 / 2 - 350; var startMenu = new Container(); startMenu.addChild(startMenuBg); startMenu.addChild(startMenuGameName); startMenu.addChild(startMenuText); // En yüksek skor metni var highScore = storage.highScore || 0; var highScoreTxt = new Text2('En Yüksek Skor: ' + highScore, { size: 110, fill: 0xffffff }); highScoreTxt.anchor.set(0.5, 0.5); highScoreTxt.x = 2048 / 2; highScoreTxt.y = 2732 / 2 + 120; startMenu.addChild(highScoreTxt); game.addChild(startMenu); var gameStarted = false; // Springtrap nesnesi var springtrap = new Springtrap(); game.addChild(springtrap); // Jumpscare efekti var jumpscare = new Jumpscare(); game.addChild(jumpscare); // Springtrap'in ekranda kalma süresi (ms) var springtrapTime = 900; // Springtrap'in tekrar çıkma aralığı (ms) var springtrapDelayMin = 700; var springtrapDelayMax = 1600; // Springtrap zamanlayıcıları var springtrapTimeout = null; var springtrapAppearTimeout = null; // Can (hak) sayısı ve metni var lives = 1; // Sağ üstte kalp ve sayaç için bir container var livesContainer = new Container(); // Kalp simgesi (küçük boyut, sağ üstte) var livesIcon = LK.getAsset('heart', { anchorX: 1, anchorY: 0, scaleX: 0.7, scaleY: 0.7, x: 0, y: 0 }); livesContainer.addChild(livesIcon); // Sayaç metni (kalbin solunda) var livesTxt = new Text2("x" + lives, { size: 110, fill: 0xff3b3b }); livesTxt.anchor.set(1, 0.5); livesTxt.x = -20; livesTxt.y = livesIcon.height / 2 - 10; livesContainer.addChild(livesTxt); // Sağ üst köşeye yerleştir (biraz içeri, menüyle çakışmasın) livesContainer.x = 2048 - 40; livesContainer.y = 40; // Aktif kalp referansı var activeHeart = null; // Birden fazla kalp için dizi var activeHearts = []; // Aktif buton referansı var activeButton = null; // Golden Freddy referansı ve timeout'u var goldenFreddy = undefined; var goldenFreddyTimeout = undefined; // Skoru sıfırla LK.setScore(0); scoreTxt.setText(0); // --- Springtrap gelince 'üzerine tıkla' yazısı --- var tapHint = new Text2('Üzerine tıkla!', { size: 120, fill: 0xFFFFFF }); tapHint.anchor.set(0.5, 0.5); tapHint.x = 2048 / 2; tapHint.y = 2732 / 2 + 400; tapHint.visible = false; game.addChild(tapHint); // Springtrap'i ekranda göster function showSpringtrap() { springtrap.appear(); // 'Üzerine tıkla' yazısını göster tapHint.visible = true; // Golden Freddy'yi rastgele bir kapağa çıkar (yaklaşık %80 olasılıkla ve Springtrap ile aynı kapakta olamaz) if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.parent) { goldenFreddy.hide(); goldenFreddy.visible = false; } if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) { LK.clearTimeout(goldenFreddyTimeout); } if (typeof goldenFreddy === "undefined") { goldenFreddy = new GoldenFreddy(); game.addChild(goldenFreddy); } goldenFreddy.active = false; goldenFreddy.visible = false; // Golden Freddy %80 olasılıkla çıkacak ve Springtrap ile aynı kapakta olmayacak if (Math.random() < 0.8 && kapaklar.length > 1) { // Springtrap'in bulunduğu kapağı bul var springtrapKapakIdx = -1; for (var i = 0; i < kapaklar.length; i++) { if (Math.abs(springtrap.x - kapaklar[i].x) < 2 && Math.abs(springtrap.y - (kapaklar[i].y - kapaklar[i].height / 2 - springtrap.height / 2 + 40)) < 2) { springtrapKapakIdx = i; break; } } // Springtrap'in kapağı hariç diğerlerinden rastgele seç var availableKapaklar = []; for (var i = 0; i < kapaklar.length; i++) { if (i !== springtrapKapakIdx) { availableKapaklar.push(kapaklar[i]); } } if (availableKapaklar.length > 0) { var gfIdx = Math.floor(Math.random() * availableKapaklar.length); var gfKapak = availableKapaklar[gfIdx]; goldenFreddy.appear(gfKapak); // Golden Freddy ekranda 0.8 saniye kalsın, sonra kaybolsun goldenFreddyTimeout = LK.setTimeout(function () { goldenFreddy.hide(); }, 800); } } // İlk 10 skor için birden fazla kalp çıkar if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } } activeHearts = []; if (LK.getScore() < 10) { // 2-4 arası kalp çıkar (her seferinde farklı sayıda) var heartCount = 2 + Math.floor(Math.random() * 3); // 2,3,4 var margin = 200; var minX = margin; var maxX = 2048 - margin; var minY = margin + 200; var maxY = 2732 - margin - 200; for (var i = 0; i < heartCount; i++) { var heart = new Heart(); // Rastgele bir konumda (kapakların dışında, ekranın ortasında bir yerde) heart.x = minX + Math.random() * (maxX - minX); heart.y = minY + Math.random() * (maxY - minY); game.addChild(heart); activeHearts.push(heart); } } else { // 10 ve üstü skor için eski kalp varsa yok et, tekli kalp çıkarma (önceki davranış) if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (Math.random() < 0.3) { activeHeart = new Heart(); var margin = 200; var minX = margin; var maxX = 2048 - margin; var minY = margin + 200; var maxY = 2732 - margin - 200; activeHeart.x = minX + Math.random() * (maxX - minX); activeHeart.y = minY + Math.random() * (maxY - minY); game.addChild(activeHeart); } } // --- RASTGELE BUTON EKLEME --- // Sadece skor 20 veya daha fazlaysa buton gelsin if (LK.getScore() >= 20) { // Önce eski buton varsa kaldır if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) { activeButton.destroy(); activeButton = null; } var buttonWidth = 420; var buttonHeight = 180; var buttonMargin = 120; var buttonMinX = buttonMargin + buttonWidth / 2; var buttonMaxX = 2048 - buttonMargin - buttonWidth / 2; var buttonMinY = buttonMargin + buttonHeight / 2; var buttonMaxY = 2732 - buttonMargin - buttonHeight / 2; var buttonX = buttonMinX + Math.random() * (buttonMaxX - buttonMinX); var buttonY = buttonMinY + Math.random() * (buttonMaxY - buttonMinY); activeButton = new Container(); var btnBg = LK.getAsset('centerCircle', { anchorX: 0.5, anchorY: 0.5, scaleX: buttonWidth / 100, scaleY: buttonHeight / 100, x: 0, y: 0 }); btnBg.tint = 0x00c853; activeButton.addChild(btnBg); var btnText = new Text2('BUTONA BAS!', { size: 90, fill: 0xffffff }); btnText.anchor.set(0.5, 0.5); btnText.x = 0; btnText.y = 0; activeButton.addChild(btnText); activeButton.x = buttonX; activeButton.y = buttonY; activeButton.visible = true; activeButton.active = true; game.addChild(activeButton); // Butona basınca butonu yok et, bir sonraki springtrap'e geç activeButton.down = function (x, y, obj) { if (!activeButton.active) return; activeButton.active = false; activeButton.visible = false; activeButton.destroy(); activeButton = null; // Springtrap'i de yok et, yeni springtrap gelsin if (springtrapTimeout) LK.clearTimeout(springtrapTimeout); if (springtrap.active) { springtrap.active = false; springtrap.visible = false; } if (tapHint) tapHint.visible = false; scheduleNextSpringtrap(); }; // Eğer oyuncu zamanında dokunmazsa jumpscare başlat springtrapTimeout = LK.setTimeout(function () { // Eğer butona basılmadıysa ve aktifse, jumpscare! if (typeof activeButton !== "undefined" && activeButton && activeButton.active) { activeButton.active = false; activeButton.visible = false; activeButton.destroy(); activeButton = null; // Butona basılmadıysa jumpscare başlat triggerJumpscare(); return; } // Eğer springtrap aktifse ve butona basılmışsa, yine jumpscare başlat if (springtrap.active) { triggerJumpscare(); } // Kalp varsa yok et if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } activeHearts = []; } }, springtrapTime); } else { // Skor 20'den küçükse, eski buton varsa kaldır ve yeni buton oluşturma if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) { activeButton.destroy(); activeButton = null; } // Springtrap için timeout yine de başlatılsın (buton yokken de springtrap süresi dolunca jumpscare olabilsin) springtrapTimeout = LK.setTimeout(function () { // Sadece springtrap aktifse jumpscare başlat if (springtrap.active) { triggerJumpscare(); } // Kalp varsa yok et if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } activeHearts = []; } }, springtrapTime); } } // Sonraki Springtrap için zamanlayıcı kur function scheduleNextSpringtrap() { if (springtrapAppearTimeout) LK.clearTimeout(springtrapAppearTimeout); springtrapAppearTimeout = LK.setTimeout(function () { showSpringtrap(); }, springtrapDelayMin + Math.floor(Math.random() * (springtrapDelayMax - springtrapDelayMin))); } // Jumpscare başlat function triggerJumpscare() { // Eğer fazladan can varsa jumpscare'i engelle ve canı azalt if (typeof lives !== "undefined" && lives > 1) { lives -= 1; if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives); // Springtrap'i kaybet, yeni springtrap gelsin springtrap.active = false; springtrap.visible = false; if (tapHint) tapHint.visible = false; scheduleNextSpringtrap(); // Kalp varsa yok et if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } activeHearts = []; } return; } springtrap.active = false; springtrap.visible = false; jumpscare.start(); // Jumpscare sesi çal LK.getSound('jumpscare_sfx').play(); // Jumpscare sırasında müziği durdur LK.stopMusic(); // Kısa gecikmeden sonra oyun biter ve jumpscare ekranda gösterilir LK.setTimeout(function () { jumpscare.visible = false; // Jumpscare'i gizle (oyun bitince) LK.showGameOver(); }, 900); } // Oyun başladığında ilk Springtrap'i göster // scheduleNextSpringtrap(); // Oyuncu başlat menüsünde dokunana kadar oyun başlamasın // Oyun bittiğinde zamanlayıcıları temizle game.onDestroy = function () { if (springtrapTimeout) LK.clearTimeout(springtrapTimeout); if (springtrapAppearTimeout) LK.clearTimeout(springtrapAppearTimeout); // Oyun bittiğinde başlat menüsünü tekrar göster if (startMenu) startMenu.visible = true; gameStarted = false; if (tapHint) tapHint.visible = false; // Oyun bitince müziği durdur LK.stopMusic(); // Skor kaydı ve gösterimi var currentScore = LK.getScore(); if (!storage.highScore || currentScore > storage.highScore) { storage.highScore = currentScore; } if (typeof highScoreTxt !== "undefined") { highScoreTxt.setText('En Yüksek Skor: ' + (storage.highScore || 0)); } // Canı sıfırla lives = 1; if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives); if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } activeHearts = []; } // Buton varsa yok et if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) { activeButton.destroy(); activeButton = null; } // Golden Freddy varsa yok et if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.parent) { goldenFreddy.hide(); goldenFreddy.visible = false; } if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) { LK.clearTimeout(goldenFreddyTimeout); goldenFreddyTimeout = undefined; } }; // Oyun açıldığında arka plan müziğini başlat LK.playMusic('backraund'); // Oyun güncellemesi (gerekirse ek efektler için) game.update = function () { // Oyun akışı burada yönetiliyor }; // Ekrana dokunma olaylarını Springtrap'e yönlendir game.down = function (x, y, obj) { // Eğer oyun başlamadıysa ve başlat menüsü açıksa, başlat if (!gameStarted && startMenu && startMenu.visible !== false) { gameStarted = true; startMenu.visible = false; LK.setScore(0); scoreTxt.setText(0); // Canı sıfırla lives = 1; if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives); if (activeHeart && activeHeart.parent) { activeHeart.destroy(); activeHeart = null; } if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) { for (var h = 0; h < activeHearts.length; h++) { if (activeHearts[h] && activeHearts[h].parent) { activeHearts[h].destroy(); } } activeHearts = []; } scheduleNextSpringtrap(); return; } // Önce butona tıklanıp tıklanmadığını kontrol et if (typeof activeButton !== "undefined" && activeButton && activeButton.active && activeButton.visible) { // Koordinatları butonun lokaline çevir var localBtn = activeButton.toLocal(game.toGlobal({ x: x, y: y })); var btnBg = activeButton.children[0]; if (localBtn.x >= -btnBg.width / 2 && localBtn.x <= btnBg.width / 2 && localBtn.y >= -btnBg.height / 2 && localBtn.y <= btnBg.height / 2) { if (typeof activeButton.down === "function") { activeButton.down(x, y, obj); } return; } } // Golden Freddy'ye tıklama kontrolü if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.active && goldenFreddy.visible) { var localGF = goldenFreddy.toLocal(game.toGlobal({ x: x, y: y })); var gfAsset = goldenFreddy.children[0]; if (localGF.x >= -gfAsset.width / 2 && localGF.x <= gfAsset.width / 2 && localGF.y >= -gfAsset.height / 2 && localGF.y <= gfAsset.height / 2) { goldenFreddy.down(x, y, obj); if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) { LK.clearTimeout(goldenFreddyTimeout); goldenFreddyTimeout = undefined; } return; } } // Ekrana dokunulduğunda Springtrap'e tıklanıp tıklanmadığını kontrol et if (springtrap.active && springtrap.visible) { // Koordinatları Springtrap'in lokaline çevir var local = springtrap.toLocal(game.toGlobal({ x: x, y: y })); // Springtrap kutusunun içinde mi? var stAsset = springtrap.children[0]; if (local.x >= -stAsset.width / 2 && local.x <= stAsset.width / 2 && local.y >= -stAsset.height / 2 && local.y <= stAsset.height / 2) { springtrap.down(x, y, obj); if (springtrapTimeout) LK.clearTimeout(springtrapTimeout); } } }; // Oyun başladığında skor sıfırlansın LK.setScore(0); scoreTxt.setText(0);
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
// Golden Freddy karakteri
var GoldenFreddy = Container.expand(function () {
var self = Container.call(this);
var gf = self.attachAsset('goldenfreddy', {
anchorX: 0.5,
anchorY: 0.5
});
self.active = false;
self.appear = function (kapak) {
if (kapak) {
self.x = kapak.x;
self.y = kapak.y - kapak.height / 2 - self.height / 2 + 40;
} else {
self.x = 2048 / 2;
self.y = 2732 / 2;
}
self.visible = true;
self.active = true;
self.scale.x = 0.7;
self.scale.y = 0.7;
tween(self.scale, {
x: 1,
y: 1
}, {
duration: 200,
easing: tween.easeOut
});
};
self.hide = function () {
self.active = false;
tween(self.scale, {
x: 0.2,
y: 0.2
}, {
duration: 180,
easing: tween.easeIn,
onFinish: function onFinish() {
self.visible = false;
}
});
};
self.down = function (x, y, obj) {
if (!self.active) return;
// Golden Freddy'ye basınca jumpscare!
triggerJumpscare();
self.hide();
};
return self;
});
// Ekstra kalp (can) class'ı
var Heart = Container.expand(function () {
var self = Container.call(this);
// Kalp görseli (artık asset olarak kalp resmi)
var heartAsset = self.attachAsset('heart', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.2,
scaleY: 1.2
});
self.active = true;
// Kalp'e dokununca
self.down = function (x, y, obj) {
if (!self.active) return;
self.active = false;
self.visible = false;
// 1 can ekle
if (typeof lives !== "undefined") {
lives += 1;
if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives);
}
// Kalbi yok et
self.destroy();
};
return self;
});
// Jumpscare efekti (ekranı kırmızıya boyar ve titretir)
var Jumpscare = Container.expand(function () {
var self = Container.call(this);
var js = self.attachAsset('jumpscare', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
self.alpha = 0;
self.visible = false;
// Jumpscare başlat
self.start = function () {
self.visible = true;
self.alpha = 0.8;
// Titreme efekti
var shakeCount = 0;
var shakeMax = 10;
var shakeTimer = LK.setInterval(function () {
self.x = (Math.random() - 0.5) * 40;
self.y = (Math.random() - 0.5) * 40;
shakeCount++;
if (shakeCount > shakeMax) {
LK.clearInterval(shakeTimer);
self.x = 0;
self.y = 0;
// Yavaşça kaybol
tween(self, {
alpha: 0
}, {
duration: 400,
onFinish: function onFinish() {
self.visible = false;
}
});
}
}, 30);
};
return self;
});
// Kapak (cover) class: farklı renkli kapaklar için
var Kapak = Container.expand(function () {
var self = Container.call(this);
// Kapak indexine göre farklı asset kullan
self.setKapakIndex = function (idx) {
// Önce eski asset varsa kaldır
if (self.kapakAsset) {
self.removeChild(self.kapakAsset);
}
self.kapakIndex = idx;
self.kapakAsset = self.attachAsset('kapak' + idx, {
anchorX: 0.5,
anchorY: 0.5
});
};
return self;
});
// Springtrap karakteri
var Springtrap = Container.expand(function () {
var self = Container.call(this);
// Karakteri ortalamak için anchor noktası ortada
var st = self.attachAsset('springtrap', {
anchorX: 0.5,
anchorY: 0.5
});
// Springtrap'in aktif olup olmadığını tut
self.active = false;
// Springtrap'i kapakların birinin ortasında rastgele çıkar
self.appear = function () {
// Kapaklar globalde tanımlı
if (typeof kapaklar !== "undefined" && kapaklar.length > 0) {
var idx = Math.floor(Math.random() * kapaklar.length);
var kapak = kapaklar[idx];
// Springtrap'i kapağın ortasına yerleştir
self.x = kapak.x;
self.y = kapak.y - kapak.height / 2 - self.height / 2 + 40; // Biraz kapağın üstünde çıksın
} else {
// Fallback: ortada göster
self.x = 2048 / 2;
self.y = 2732 / 2;
}
self.visible = true;
self.active = true;
// Hafifçe büyüyerek ortaya çıkma animasyonu
self.scale.x = 0.7;
self.scale.y = 0.7;
tween(self.scale, {
x: 1,
y: 1
}, {
duration: 200,
easing: tween.easeOut
});
};
// Springtrap'i uzaklaştır
self.scareAway = function (_onFinish) {
self.active = false;
// 'Üzerine tıkla' yazısını gizle
if (typeof tapHint !== "undefined") tapHint.visible = false;
// Küçülerek kaybolma animasyonu
tween(self.scale, {
x: 0.2,
y: 0.2
}, {
duration: 180,
easing: tween.easeIn,
onFinish: function onFinish() {
self.visible = false;
if (_onFinish) _onFinish();
}
});
};
// Springtrap'e dokunulduğunda
self.down = function (x, y, obj) {
if (!self.active) return;
// Skoru artır, Springtrap'i uzaklaştır
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
LK.getSound('scare_away').play();
self.scareAway(function () {
// Sonraki Springtrap için zamanlayıcı başlat
scheduleNextSpringtrap();
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x111111
});
/****
* Game Code
****/
// Golden Freddy asset
// Skor metni
// Springtrap karakteri için bir kutu şekli (daha sonra görsel ile değiştirilebilir)
// Jumpscare efekti için kırmızı bir kutu
// Springtrap uzaklaştırma efekti için kısa bir ses
// Jumpscare için bir ses efekti
// 6 farklı renkli kapaklar
// Mavi
// Kırmızı
// Yeşil
// Sarı
// Mor
// Lacivert
var scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFF700
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// 6 farklı renkli kapakları ekle
var kapaklar = [];
var kapakCount = 6;
var kapakSpacing = 120; // Aralıkları büyüttük
var kapakWidth = 480; // Kapakları büyüttük
var kapakHeight = 270; // Kapakları büyüttük
// 2 satır, 3 sütun olacak şekilde ortala
var cols = 3;
var rows = 2;
var totalWidth = cols * kapakWidth + (cols - 1) * kapakSpacing;
var totalHeight = rows * kapakHeight + (rows - 1) * kapakSpacing;
var startX = (2048 - totalWidth) / 2 + kapakWidth / 2;
var startY = (2732 - totalHeight) / 2 + kapakHeight / 2;
for (var i = 0; i < kapakCount; i++) {
var kapak = new Kapak();
kapak.setKapakIndex(i);
var row = Math.floor(i / cols);
var col = i % cols;
kapak.x = startX + col * (kapakWidth + kapakSpacing);
kapak.y = startY + row * (kapakHeight + kapakSpacing);
game.addChild(kapak);
kapaklar.push(kapak);
}
// --- BAŞLAT MENÜSÜ EKLE ---
var startMenuBg = LK.getAsset('centerCircle', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
scaleX: 2048 / 100,
scaleY: 2732 / 100
});
startMenuBg.tint = 0x0074D9; // mavi
startMenuBg.alpha = 1;
// Oyun ismi başlat menüsünde en üstte büyük olarak gösterilsin
var startMenuGameName = new Text2('Springtrap Jumpscare', {
size: 220,
fill: 0xFFF700
});
startMenuGameName.anchor.set(0.5, 0.5);
startMenuGameName.x = 2048 / 2;
startMenuGameName.y = 2732 / 2 - 500;
var startMenuText = new Text2('Başlamak için dokun', {
size: 140,
fill: 0xFFFFFF
});
startMenuText.anchor.set(0.5, 0.5);
startMenuText.x = 2048 / 2;
startMenuText.y = 2732 / 2 - 100;
// (İsteğe bağlı: eski başlık metni kaldırıldı, çünkü yukarıda büyük başlık var)
// var startMenuTitle = new Text2('Springtrap Jumpscare', {
// size: 180,
// fill: 0xFFF700
// });
// startMenuTitle.anchor.set(0.5, 0.5);
// startMenuTitle.x = 2048 / 2;
// startMenuTitle.y = 2732 / 2 - 350;
var startMenu = new Container();
startMenu.addChild(startMenuBg);
startMenu.addChild(startMenuGameName);
startMenu.addChild(startMenuText);
// En yüksek skor metni
var highScore = storage.highScore || 0;
var highScoreTxt = new Text2('En Yüksek Skor: ' + highScore, {
size: 110,
fill: 0xffffff
});
highScoreTxt.anchor.set(0.5, 0.5);
highScoreTxt.x = 2048 / 2;
highScoreTxt.y = 2732 / 2 + 120;
startMenu.addChild(highScoreTxt);
game.addChild(startMenu);
var gameStarted = false;
// Springtrap nesnesi
var springtrap = new Springtrap();
game.addChild(springtrap);
// Jumpscare efekti
var jumpscare = new Jumpscare();
game.addChild(jumpscare);
// Springtrap'in ekranda kalma süresi (ms)
var springtrapTime = 900;
// Springtrap'in tekrar çıkma aralığı (ms)
var springtrapDelayMin = 700;
var springtrapDelayMax = 1600;
// Springtrap zamanlayıcıları
var springtrapTimeout = null;
var springtrapAppearTimeout = null;
// Can (hak) sayısı ve metni
var lives = 1;
// Sağ üstte kalp ve sayaç için bir container
var livesContainer = new Container();
// Kalp simgesi (küçük boyut, sağ üstte)
var livesIcon = LK.getAsset('heart', {
anchorX: 1,
anchorY: 0,
scaleX: 0.7,
scaleY: 0.7,
x: 0,
y: 0
});
livesContainer.addChild(livesIcon);
// Sayaç metni (kalbin solunda)
var livesTxt = new Text2("x" + lives, {
size: 110,
fill: 0xff3b3b
});
livesTxt.anchor.set(1, 0.5);
livesTxt.x = -20;
livesTxt.y = livesIcon.height / 2 - 10;
livesContainer.addChild(livesTxt);
// Sağ üst köşeye yerleştir (biraz içeri, menüyle çakışmasın)
livesContainer.x = 2048 - 40;
livesContainer.y = 40;
// Aktif kalp referansı
var activeHeart = null;
// Birden fazla kalp için dizi
var activeHearts = [];
// Aktif buton referansı
var activeButton = null;
// Golden Freddy referansı ve timeout'u
var goldenFreddy = undefined;
var goldenFreddyTimeout = undefined;
// Skoru sıfırla
LK.setScore(0);
scoreTxt.setText(0);
// --- Springtrap gelince 'üzerine tıkla' yazısı ---
var tapHint = new Text2('Üzerine tıkla!', {
size: 120,
fill: 0xFFFFFF
});
tapHint.anchor.set(0.5, 0.5);
tapHint.x = 2048 / 2;
tapHint.y = 2732 / 2 + 400;
tapHint.visible = false;
game.addChild(tapHint);
// Springtrap'i ekranda göster
function showSpringtrap() {
springtrap.appear();
// 'Üzerine tıkla' yazısını göster
tapHint.visible = true;
// Golden Freddy'yi rastgele bir kapağa çıkar (yaklaşık %80 olasılıkla ve Springtrap ile aynı kapakta olamaz)
if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.parent) {
goldenFreddy.hide();
goldenFreddy.visible = false;
}
if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) {
LK.clearTimeout(goldenFreddyTimeout);
}
if (typeof goldenFreddy === "undefined") {
goldenFreddy = new GoldenFreddy();
game.addChild(goldenFreddy);
}
goldenFreddy.active = false;
goldenFreddy.visible = false;
// Golden Freddy %80 olasılıkla çıkacak ve Springtrap ile aynı kapakta olmayacak
if (Math.random() < 0.8 && kapaklar.length > 1) {
// Springtrap'in bulunduğu kapağı bul
var springtrapKapakIdx = -1;
for (var i = 0; i < kapaklar.length; i++) {
if (Math.abs(springtrap.x - kapaklar[i].x) < 2 && Math.abs(springtrap.y - (kapaklar[i].y - kapaklar[i].height / 2 - springtrap.height / 2 + 40)) < 2) {
springtrapKapakIdx = i;
break;
}
}
// Springtrap'in kapağı hariç diğerlerinden rastgele seç
var availableKapaklar = [];
for (var i = 0; i < kapaklar.length; i++) {
if (i !== springtrapKapakIdx) {
availableKapaklar.push(kapaklar[i]);
}
}
if (availableKapaklar.length > 0) {
var gfIdx = Math.floor(Math.random() * availableKapaklar.length);
var gfKapak = availableKapaklar[gfIdx];
goldenFreddy.appear(gfKapak);
// Golden Freddy ekranda 0.8 saniye kalsın, sonra kaybolsun
goldenFreddyTimeout = LK.setTimeout(function () {
goldenFreddy.hide();
}, 800);
}
}
// İlk 10 skor için birden fazla kalp çıkar
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
}
activeHearts = [];
if (LK.getScore() < 10) {
// 2-4 arası kalp çıkar (her seferinde farklı sayıda)
var heartCount = 2 + Math.floor(Math.random() * 3); // 2,3,4
var margin = 200;
var minX = margin;
var maxX = 2048 - margin;
var minY = margin + 200;
var maxY = 2732 - margin - 200;
for (var i = 0; i < heartCount; i++) {
var heart = new Heart();
// Rastgele bir konumda (kapakların dışında, ekranın ortasında bir yerde)
heart.x = minX + Math.random() * (maxX - minX);
heart.y = minY + Math.random() * (maxY - minY);
game.addChild(heart);
activeHearts.push(heart);
}
} else {
// 10 ve üstü skor için eski kalp varsa yok et, tekli kalp çıkarma (önceki davranış)
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (Math.random() < 0.3) {
activeHeart = new Heart();
var margin = 200;
var minX = margin;
var maxX = 2048 - margin;
var minY = margin + 200;
var maxY = 2732 - margin - 200;
activeHeart.x = minX + Math.random() * (maxX - minX);
activeHeart.y = minY + Math.random() * (maxY - minY);
game.addChild(activeHeart);
}
}
// --- RASTGELE BUTON EKLEME ---
// Sadece skor 20 veya daha fazlaysa buton gelsin
if (LK.getScore() >= 20) {
// Önce eski buton varsa kaldır
if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) {
activeButton.destroy();
activeButton = null;
}
var buttonWidth = 420;
var buttonHeight = 180;
var buttonMargin = 120;
var buttonMinX = buttonMargin + buttonWidth / 2;
var buttonMaxX = 2048 - buttonMargin - buttonWidth / 2;
var buttonMinY = buttonMargin + buttonHeight / 2;
var buttonMaxY = 2732 - buttonMargin - buttonHeight / 2;
var buttonX = buttonMinX + Math.random() * (buttonMaxX - buttonMinX);
var buttonY = buttonMinY + Math.random() * (buttonMaxY - buttonMinY);
activeButton = new Container();
var btnBg = LK.getAsset('centerCircle', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: buttonWidth / 100,
scaleY: buttonHeight / 100,
x: 0,
y: 0
});
btnBg.tint = 0x00c853;
activeButton.addChild(btnBg);
var btnText = new Text2('BUTONA BAS!', {
size: 90,
fill: 0xffffff
});
btnText.anchor.set(0.5, 0.5);
btnText.x = 0;
btnText.y = 0;
activeButton.addChild(btnText);
activeButton.x = buttonX;
activeButton.y = buttonY;
activeButton.visible = true;
activeButton.active = true;
game.addChild(activeButton);
// Butona basınca butonu yok et, bir sonraki springtrap'e geç
activeButton.down = function (x, y, obj) {
if (!activeButton.active) return;
activeButton.active = false;
activeButton.visible = false;
activeButton.destroy();
activeButton = null;
// Springtrap'i de yok et, yeni springtrap gelsin
if (springtrapTimeout) LK.clearTimeout(springtrapTimeout);
if (springtrap.active) {
springtrap.active = false;
springtrap.visible = false;
}
if (tapHint) tapHint.visible = false;
scheduleNextSpringtrap();
};
// Eğer oyuncu zamanında dokunmazsa jumpscare başlat
springtrapTimeout = LK.setTimeout(function () {
// Eğer butona basılmadıysa ve aktifse, jumpscare!
if (typeof activeButton !== "undefined" && activeButton && activeButton.active) {
activeButton.active = false;
activeButton.visible = false;
activeButton.destroy();
activeButton = null;
// Butona basılmadıysa jumpscare başlat
triggerJumpscare();
return;
}
// Eğer springtrap aktifse ve butona basılmışsa, yine jumpscare başlat
if (springtrap.active) {
triggerJumpscare();
}
// Kalp varsa yok et
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
activeHearts = [];
}
}, springtrapTime);
} else {
// Skor 20'den küçükse, eski buton varsa kaldır ve yeni buton oluşturma
if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) {
activeButton.destroy();
activeButton = null;
}
// Springtrap için timeout yine de başlatılsın (buton yokken de springtrap süresi dolunca jumpscare olabilsin)
springtrapTimeout = LK.setTimeout(function () {
// Sadece springtrap aktifse jumpscare başlat
if (springtrap.active) {
triggerJumpscare();
}
// Kalp varsa yok et
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
activeHearts = [];
}
}, springtrapTime);
}
}
// Sonraki Springtrap için zamanlayıcı kur
function scheduleNextSpringtrap() {
if (springtrapAppearTimeout) LK.clearTimeout(springtrapAppearTimeout);
springtrapAppearTimeout = LK.setTimeout(function () {
showSpringtrap();
}, springtrapDelayMin + Math.floor(Math.random() * (springtrapDelayMax - springtrapDelayMin)));
}
// Jumpscare başlat
function triggerJumpscare() {
// Eğer fazladan can varsa jumpscare'i engelle ve canı azalt
if (typeof lives !== "undefined" && lives > 1) {
lives -= 1;
if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives);
// Springtrap'i kaybet, yeni springtrap gelsin
springtrap.active = false;
springtrap.visible = false;
if (tapHint) tapHint.visible = false;
scheduleNextSpringtrap();
// Kalp varsa yok et
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
activeHearts = [];
}
return;
}
springtrap.active = false;
springtrap.visible = false;
jumpscare.start();
// Jumpscare sesi çal
LK.getSound('jumpscare_sfx').play();
// Jumpscare sırasında müziği durdur
LK.stopMusic();
// Kısa gecikmeden sonra oyun biter ve jumpscare ekranda gösterilir
LK.setTimeout(function () {
jumpscare.visible = false; // Jumpscare'i gizle (oyun bitince)
LK.showGameOver();
}, 900);
}
// Oyun başladığında ilk Springtrap'i göster
// scheduleNextSpringtrap();
// Oyuncu başlat menüsünde dokunana kadar oyun başlamasın
// Oyun bittiğinde zamanlayıcıları temizle
game.onDestroy = function () {
if (springtrapTimeout) LK.clearTimeout(springtrapTimeout);
if (springtrapAppearTimeout) LK.clearTimeout(springtrapAppearTimeout);
// Oyun bittiğinde başlat menüsünü tekrar göster
if (startMenu) startMenu.visible = true;
gameStarted = false;
if (tapHint) tapHint.visible = false;
// Oyun bitince müziği durdur
LK.stopMusic();
// Skor kaydı ve gösterimi
var currentScore = LK.getScore();
if (!storage.highScore || currentScore > storage.highScore) {
storage.highScore = currentScore;
}
if (typeof highScoreTxt !== "undefined") {
highScoreTxt.setText('En Yüksek Skor: ' + (storage.highScore || 0));
}
// Canı sıfırla
lives = 1;
if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives);
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
activeHearts = [];
}
// Buton varsa yok et
if (typeof activeButton !== "undefined" && activeButton && activeButton.parent) {
activeButton.destroy();
activeButton = null;
}
// Golden Freddy varsa yok et
if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.parent) {
goldenFreddy.hide();
goldenFreddy.visible = false;
}
if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) {
LK.clearTimeout(goldenFreddyTimeout);
goldenFreddyTimeout = undefined;
}
};
// Oyun açıldığında arka plan müziğini başlat
LK.playMusic('backraund');
// Oyun güncellemesi (gerekirse ek efektler için)
game.update = function () {
// Oyun akışı burada yönetiliyor
};
// Ekrana dokunma olaylarını Springtrap'e yönlendir
game.down = function (x, y, obj) {
// Eğer oyun başlamadıysa ve başlat menüsü açıksa, başlat
if (!gameStarted && startMenu && startMenu.visible !== false) {
gameStarted = true;
startMenu.visible = false;
LK.setScore(0);
scoreTxt.setText(0);
// Canı sıfırla
lives = 1;
if (typeof livesTxt !== "undefined") livesTxt.setText("x" + lives);
if (activeHeart && activeHeart.parent) {
activeHeart.destroy();
activeHeart = null;
}
if (typeof activeHearts !== "undefined" && Array.isArray(activeHearts)) {
for (var h = 0; h < activeHearts.length; h++) {
if (activeHearts[h] && activeHearts[h].parent) {
activeHearts[h].destroy();
}
}
activeHearts = [];
}
scheduleNextSpringtrap();
return;
}
// Önce butona tıklanıp tıklanmadığını kontrol et
if (typeof activeButton !== "undefined" && activeButton && activeButton.active && activeButton.visible) {
// Koordinatları butonun lokaline çevir
var localBtn = activeButton.toLocal(game.toGlobal({
x: x,
y: y
}));
var btnBg = activeButton.children[0];
if (localBtn.x >= -btnBg.width / 2 && localBtn.x <= btnBg.width / 2 && localBtn.y >= -btnBg.height / 2 && localBtn.y <= btnBg.height / 2) {
if (typeof activeButton.down === "function") {
activeButton.down(x, y, obj);
}
return;
}
}
// Golden Freddy'ye tıklama kontrolü
if (typeof goldenFreddy !== "undefined" && goldenFreddy && goldenFreddy.active && goldenFreddy.visible) {
var localGF = goldenFreddy.toLocal(game.toGlobal({
x: x,
y: y
}));
var gfAsset = goldenFreddy.children[0];
if (localGF.x >= -gfAsset.width / 2 && localGF.x <= gfAsset.width / 2 && localGF.y >= -gfAsset.height / 2 && localGF.y <= gfAsset.height / 2) {
goldenFreddy.down(x, y, obj);
if (typeof goldenFreddyTimeout !== "undefined" && goldenFreddyTimeout) {
LK.clearTimeout(goldenFreddyTimeout);
goldenFreddyTimeout = undefined;
}
return;
}
}
// Ekrana dokunulduğunda Springtrap'e tıklanıp tıklanmadığını kontrol et
if (springtrap.active && springtrap.visible) {
// Koordinatları Springtrap'in lokaline çevir
var local = springtrap.toLocal(game.toGlobal({
x: x,
y: y
}));
// Springtrap kutusunun içinde mi?
var stAsset = springtrap.children[0];
if (local.x >= -stAsset.width / 2 && local.x <= stAsset.width / 2 && local.y >= -stAsset.height / 2 && local.y <= stAsset.height / 2) {
springtrap.down(x, y, obj);
if (springtrapTimeout) LK.clearTimeout(springtrapTimeout);
}
}
};
// Oyun başladığında skor sıfırlansın
LK.setScore(0);
scoreTxt.setText(0);