User prompt
golden freddy 0.8 saniye beklesin
User prompt
golden freddy spring trap ile aynı kapakta olamaz ve %80 oranla çıksın
User prompt
ekstra kapaklardan golden fredy çıksın eğer ona basarsak jumpscare yiyelim
User prompt
springtrap 0.9 saniye beklesin
User prompt
ilk 10 skorda bir sürü kalp çıksın
User prompt
buton üstteki sayı 20 olunca gelsin
User prompt
butona basmak için sadece 0.5 saniye olsun
User prompt
eğer butona basmazsak jumpscare çıksın
User prompt
eğerki ölürsek jumpscare çıksın
User prompt
ekranın her hangi bir yerinde buton çıksın eğer tıklamazsak ölelim
User prompt
sağ üstte ne kadar kalbimiz varsa gösteren bir sayaç olsun
User prompt
kalpleri asset haline dönüştür
User prompt
kalpler daha büyük olsun
User prompt
%30 şansla ekranda her hangi bir yerde ekstra bir kalp çıksın ve 1 tane daha hakkımız olsun
User prompt
başlat meüsünde oyunun ismi yazsın
User prompt
ve başlat menüsünde en yüksek skoru göster ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
jumpscare gelince jumpscare_sfx sesini çal
User prompt
oyun açıldığı zaman backraund adlı müzik çalsın ve jumpscare gelince dursun
User prompt
başlat menüsü mavi olsun
User prompt
tıklamak için sadece 0.9 saniyemiz olsun
User prompt
kapakları büyüt ve aralıklarıda büyüt
User prompt
bu kapaklar ekranın ortasında yan yana 3er 3er sıralansın ve springtrap bu kapakların olduğu yerden çıksın
User prompt
bu kapakların rengi farklı olsun
User prompt
ekrana 6 tane kapak ekle springtrap bu kapakların içinden çıksın
User prompt
bir başlat menüsü ekle ve springtrap gelince üzerine tıkla yaz
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // 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 ****/ // Lacivert // Mor // Sarı // Yeşil // Kırmızı // Mavi // 6 farklı renkli kapaklar // Jumpscare için bir ses efekti // Springtrap uzaklaştırma efekti için kısa bir ses // Jumpscare efekti için kırmızı bir kutu // Springtrap karakteri için bir kutu şekli (daha sonra görsel ile değiştirilebilir) // Skor metni 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; 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; 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(startMenuTitle); startMenu.addChild(startMenuText); 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; // 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; // Eğer oyuncu zamanında dokunmazsa jumpscare başlat springtrapTimeout = LK.setTimeout(function () { if (springtrap.active) { triggerJumpscare(); } }, 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() { springtrap.active = false; springtrap.visible = false; jumpscare.start(); LK.getSound('jumpscare_sfx').play(); // Jumpscare sırasında müziği durdur LK.stopMusic(); // Kısa gecikmeden sonra oyun biter LK.setTimeout(function () { 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(); }; // 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); scheduleNextSpringtrap(); 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);
===================================================================
--- original.js
+++ change.js
@@ -142,20 +142,20 @@
/****
* Game Code
****/
-// 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
+// Mor
+// Sarı
+// Yeşil
+// Kırmızı
+// Mavi
+// 6 farklı renkli kapaklar
+// Jumpscare için bir ses efekti
+// Springtrap uzaklaştırma efekti için kısa bir ses
+// Jumpscare efekti için kırmızı bir kutu
+// Springtrap karakteri için bir kutu şekli (daha sonra görsel ile değiştirilebilir)
+// Skor metni
var scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFF700
});
@@ -266,8 +266,10 @@
springtrap.active = false;
springtrap.visible = false;
jumpscare.start();
LK.getSound('jumpscare_sfx').play();
+ // Jumpscare sırasında müziği durdur
+ LK.stopMusic();
// Kısa gecikmeden sonra oyun biter
LK.setTimeout(function () {
LK.showGameOver();
}, 900);
@@ -282,9 +284,13 @@
// 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();
};
+// 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
};