User prompt
Kazanma mesajından önce ekranda “Canım Annem” yazısı 5 sn görünsün sonra you win yazsın
Code edit (1 edits merged)
Please save this source code
User prompt
Oyunu kazanınca you win yerine canım annem yazsın
User prompt
Please fix the bug: 'TypeError: LK.showMessage is not a function. (In 'LK.showMessage("canım anem")', 'LK.showMessage' is undefined)' in or related to this line: 'LK.showMessage("canım anem");' Line Number: 304
User prompt
50 puan ve üzerinde oyunu kazanalım ve you win yerine canım anem yazsın
User prompt
50 puanda oyunu kazanalım ve ekranda anneler günün kutlu olsun yazsın
User prompt
50 puanda yeni haritaya geçsin
User prompt
55 puanda oyunu kazanalım
User prompt
30 puanda oyunu kazan mıyalım
User prompt
Har köstebek 5 puan versin
User prompt
50 puanda yeni bir alana geçsin.
Remix started
Copy baba
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Köstebek (Mole) sınıfı var Mole = Container.expand(function () { var self = Container.call(this); // Mole grafiği var moleGfx = self.attachAsset('mole', { anchorX: 0.5, anchorY: 1 }); // Vurma efekti (başta görünmez) var hitEffect = self.attachAsset('hitEffect', { anchorX: 0.5, anchorY: 1, alpha: 0 }); // Mole aktif mi (vurulabilir mi) self.active = false; // Mole'nin gösterildiği süreyi takip et self.showTimeout = null; // Vurulduğunda çağrılır self.hit = function () { if (!self.active) return; self.active = false; // Efekti göster hitEffect.alpha = 0.7; tween(hitEffect, { alpha: 0 }, { duration: 350, easing: tween.easeOut }); // Mole'yi sakla self.hide(); // Puanı artır LK.setScore(LK.getScore() + 5); scoreTxt.setText(LK.getScore()); // Zorluk artışı: skor belirli aralıklara gelince gösterim süresini kısalt updateMoleShowTime(); }; // Mole'yi göster self.show = function (x, y, showTime) { self.x = x; self.y = y; self.visible = true; self.active = true; // Efekti sıfırla hitEffect.alpha = 0; // Zıplama animasyonu (topraktan çıkma) self.scaleY = 0.2; tween(self, { scaleY: 1 }, { duration: 120, easing: tween.easeOut }); // Belirli süre sonra otomatik sakla if (self.showTimeout) LK.clearTimeout(self.showTimeout); self.showTimeout = LK.setTimeout(function () { self.missed(); }, showTime); }; // Mole'yi sakla self.hide = function () { self.visible = false; self.active = false; if (self.showTimeout) { LK.clearTimeout(self.showTimeout); self.showTimeout = null; } }; // Mole kaçırılırsa self.missed = function () { if (!self.active) return; self.active = false; self.hide(); // Puanı azalt LK.setScore(Math.max(0, LK.getScore() - 1)); scoreTxt.setText(LK.getScore()); // Ekranı kısa süre kırmızıya flashla LK.effects.flashScreen(0xff0000, 200); // Hata sayısını artır missedCount++; if (missedCount >= maxMissed) { LK.showGameOver(); } }; // Dokunma olayı self.down = function (x, y, obj) { if (self.active) { self.hit(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x4caf50 // Çimen yeşili arka plan }); /**** * Game Code ****/ // Oyun alanı boyutları // Puan göstergesi için fonta gerek yok, Text2 kullanılacak // Animasyonlar için tween eklentisi var GAME_W = 2048; var GAME_H = 2732; // Arka plan görseli ekle var background = LK.getAsset('background', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: GAME_W, height: GAME_H }); game.addChildAt(background, 0); // En arkaya ekle // Puan göstergesi var scoreTxt = new Text2('0', { size: 120, fill: 0xFFF700 }); scoreTxt.anchor.set(0.5, 0); // Puanı üstte ortala, üstten 40px boşluk bırak scoreTxt.y = 40; LK.gui.top.addChild(scoreTxt); // Kaçırılan köstebek sayısı var missedCount = 0; var maxMissed = 3; // Zorluk: köstebek gösterim süresi (ms) var moleShowTime = 1100; // Başlangıçta 1.1 saniye function updateMoleShowTime() { // Skor arttıkça köstebek daha kısa süre görünür var score = LK.getScore(); if (score >= 20) moleShowTime = 600;else if (score >= 10) moleShowTime = 800;else if (score >= 5) moleShowTime = 950; } // Oyun alanında köstebeklerin çıkacağı pozisyonlar (3x3 grid) var molePositions = []; (function () { var cols = 3, rows = 3; var marginX = 320, marginY = 400; var spacingX = (GAME_W - 2 * marginX) / (cols - 1); var spacingY = (GAME_H - 2 * marginY) / (rows - 1); for (var r = 0; r < rows; r++) { for (var c = 0; c < cols; c++) { var x = marginX + c * spacingX; var y = marginY + r * spacingY + 180; // Hafif aşağıda, daha doğal görünüm molePositions.push({ x: x, y: y }); } } })(); // 3x3 gridde toplam 9 köstebek var moles = []; for (var i = 0; i < 9; i++) { var mole = new Mole(); mole.hide(); moles.push(mole); game.addChild(mole); } // Aktif köstebekleri takip et var activeMoleIndex = -1; // Yeni köstebek çıkar function showRandomMole() { // Önce tüm köstebekleri gizle for (var i = 0; i < moles.length; i++) { moles[i].hide(); } // Rastgele bir pozisyon seç var idx = Math.floor(Math.random() * molePositions.length); activeMoleIndex = idx; var pos = molePositions[idx]; moles[idx].show(pos.x, pos.y, moleShowTime); } // Oyun döngüsü: belirli aralıklarla yeni köstebek çıkar var moleTimer = null; function startMoleLoop() { if (moleTimer) LK.clearInterval(moleTimer); moleTimer = LK.setInterval(function () { showRandomMole(); }, moleShowTime + 350); // Biraz aralık bırak } // Oyun başlatıldığında sıfırla function resetGame() { LK.setScore(0); scoreTxt.setText('0'); missedCount = 0; moleShowTime = 1100; updateMoleShowTime(); for (var i = 0; i < moles.length; i++) { moles[i].hide(); } showRandomMole(); startMoleLoop(); } // Oyun bittiğinde timerları temizle LK.on('gameover', function () { if (moleTimer) LK.clearInterval(moleTimer); for (var i = 0; i < moles.length; i++) { moles[i].hide(); } }); // Oyun kazanınca (ör: 30 puan) // Yeni alan kontrolü için flag var areaLevel = 1; var areaTransitioned = false; game.update = function () { // 50 puanda yeni alana geçiş if (!areaTransitioned && LK.getScore() >= 50) { areaTransitioned = true; areaLevel = 2; // Arka planı değiştir (örnek: farklı bir resim, burada aynı asset kullanıldı, gerekirse yeni asset eklenebilir) background.texture = LK.getAsset('background', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: GAME_W, height: GAME_H }).texture; // Yeni alan için köstebek pozisyonlarını güncelle (örnek: 4x4 grid) molePositions = []; var cols = 4, rows = 4; var marginX = 220, marginY = 300; var spacingX = (GAME_W - 2 * marginX) / (cols - 1); var spacingY = (GAME_H - 2 * marginY) / (rows - 1); for (var r = 0; r < rows; r++) { for (var c = 0; c < cols; c++) { var x = marginX + c * spacingX; var y = marginY + r * spacingY + 120; molePositions.push({ x: x, y: y }); } } // 16 köstebek için yeni moles dizisi oluştur for (var i = 0; i < moles.length; i++) { moles[i].hide(); moles[i].destroy && moles[i].destroy(); } moles = []; for (var i = 0; i < 16; i++) { var mole = new Mole(); mole.hide(); moles.push(mole); game.addChild(mole); } // Yeni alan için zorluğu artır moleShowTime = 500; updateMoleShowTime(); showRandomMole(); startMoleLoop(); } // Oyun kazanınca (ör: 55 puan) if (LK.getScore() >= 55 && !areaTransitioned) { LK.showYouWin(); } }; // Oyun başlatıldığında başlat resetGame();
===================================================================
--- original.js
+++ change.js
@@ -267,10 +267,10 @@
updateMoleShowTime();
showRandomMole();
startMoleLoop();
}
- // Oyun kazanınca (ör: 30 puan)
- if (LK.getScore() >= 30 && !areaTransitioned) {
+ // Oyun kazanınca (ör: 55 puan)
+ if (LK.getScore() >= 55 && !areaTransitioned) {
LK.showYouWin();
}
};
// Oyun başlatıldığında başlat