User prompt
Yazıyı küçült
User prompt
Yazı birazcık büyüsün
User prompt
Solda cehehennem yazsın sağda cennet yazsın
User prompt
Sola cehhenme sağa cennet ekle
User prompt
Please fix the bug: 'Uncaught ReferenceError: hellBtn is not defined' in or related to this line: 'hellBtn.flash(correct ? 0x7ed957 : 0xe74c3c);' Line Number: 285
User prompt
Parmağımızla adamı cennete yada ceheneme sürükliyelim
Code edit (1 edits merged)
Please save this source code
User prompt
Cennet mi Cehennem mi?
Initial prompt
Karşımıza adam gelsin yaptığı iyiliği veye kötülüğü anlatsın bizde obda göre cennet yada cehheneme önderelim her seviyede adam deyişsin
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Button class for Heaven/Hell var ChoiceButton = Container.expand(function () { var self = Container.call(this); self.bg = null; self.txt = null; self.setType = function (type) { if (self.bg) self.removeChild(self.bg); var assetId = type === 'heaven' ? 'heaven_btn' : 'hell_btn'; self.bg = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }; self.setText = function (str) { if (self.txt) self.removeChild(self.txt); self.txt = new Text2(str, { size: 80, fill: "#fff" }); self.txt.anchor.set(0.5, 0.5); self.addChild(self.txt); }; // Feedback animation self.flash = function (color) { tween(self.bg, { tint: color }, { duration: 120, easing: tween.linear, onFinish: function onFinish() { tween(self.bg, { tint: 0xffffff }, { duration: 180 }); } }); }; return self; }); // Character display class var StoryCharacter = Container.expand(function () { var self = Container.call(this); // Will be set by .setType self.asset = null; self.setType = function (type) { if (self.asset) { self.removeChild(self.asset); } var assetId = type === 'good' ? 'char_good' : 'char_evil'; self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ // Tween for button feedback // Heaven and hell buttons // Character shapes (good and evil) // --- Story Data --- var stories = [ // Level 1-3: Obvious { type: 'good', text: "Yaşlı bir kadına markette yardım ettim." }, { type: 'evil', text: "Arkadaşımın oyuncağını gizlice kırdım." }, { type: 'good', text: "Bir sokak köpeğine su verdim." }, // Level 4-6: Slightly ambiguous { type: 'evil', text: "Sınavda kopya çektim." }, { type: 'good', text: "Kardeşime ödevinde yardım ettim." }, { type: 'evil', text: "Bir arkadaşımı haksız yere suçladım." }, // Level 7-9: More nuanced { type: 'good', text: "Bir arkadaşımın sırrını kimseye söylemedim." }, { type: 'evil', text: "Birine yalan söyledim ama kimse zarar görmedi." }, { type: 'good', text: "Bir gün boyunca hiç kimseye kötü davranmadım." }, // Level 10+: Harder { type: 'evil', text: "Birine yardım etmem gerekirdi ama etmedim." }, { type: 'good', text: "Bir arkadaşımın moralini düzeltmek için ona hediye aldım." }, { type: 'evil', text: "Birini kıskandım ve onun hakkında kötü konuştum." }]; // Shuffle stories for replayability function shuffleStories(arr) { for (var i = arr.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } shuffleStories(stories); // --- Game State --- var currentLevel = 0; var score = 0; var maxLevel = stories.length; var canChoose = true; // --- UI Elements --- var charNode = new StoryCharacter(); charNode.x = 2048 / 2; charNode.y = 900; game.addChild(charNode); var storyText = new Text2('', { size: 80, fill: "#fff", align: "center", wordWrap: true, wordWrapWidth: 1400 }); storyText.anchor.set(0.5, 0); storyText.x = 2048 / 2; storyText.y = 1300; game.addChild(storyText); // Score display var scoreTxt = new Text2('Puan: 0', { size: 100, fill: "#fff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Level display var levelTxt = new Text2('Seviye: 1', { size: 60, fill: "#fff" }); levelTxt.anchor.set(0.5, 0); LK.gui.top.addChild(levelTxt); levelTxt.y = 120; // Heaven/Hell buttons are not needed for drag-to-choose, so we do not add them to the game scene. // (If you want to keep them as visual hints, you can set their visible=false or skip adding them.) // --- Drag-to-Choose Handling --- var dragChar = false; var dragOffsetX = 0; var dragOffsetY = 0; var charStartX = charNode.x; var charStartY = charNode.y; var heavenLine = 400; // Y threshold for heaven (top) var hellLine = 2100; // Y threshold for hell (bottom) var heavenZone = 300; // px from top var hellZone = 300; // px from bottom game.down = function (x, y, obj) { if (!canChoose) return; // Check if touch is on character var dx = x - charNode.x; var dy = y - charNode.y; var r = charNode.asset && charNode.asset.width ? charNode.asset.width / 2 : 160; if (dx * dx + dy * dy <= r * r) { dragChar = true; dragOffsetX = charNode.x - x; dragOffsetY = charNode.y - y; } }; game.move = function (x, y, obj) { if (!canChoose) return; if (dragChar) { // Move character with finger charNode.x = x + dragOffsetX; charNode.y = y + dragOffsetY; // Clamp X to screen if (charNode.x < charNode.asset.width / 2) charNode.x = charNode.asset.width / 2; if (charNode.x > 2048 - charNode.asset.width / 2) charNode.x = 2048 - charNode.asset.width / 2; // Optional: feedback for zones if (charNode.y < heavenZone) { LK.effects.flashObject(charNode, 0x7ed6df, 100); } else if (charNode.y > 2732 - hellZone) { LK.effects.flashObject(charNode, 0xe17055, 100); } } }; game.up = function (x, y, obj) { if (!canChoose) return; if (dragChar) { // Heaven zone: top 300px if (charNode.y < heavenZone) { makeChoice('heaven'); } // Hell zone: bottom 300px else if (charNode.y > 2732 - hellZone) { makeChoice('hell'); } // Otherwise, snap back to start else { tween(charNode, { x: charStartX, y: charStartY }, { duration: 200, easing: tween.easeOut }); } dragChar = false; } }; // --- Game Logic --- function showLevel(idx) { canChoose = true; var story = stories[idx]; charNode.setType(story.type); storyText.setText(story.text); scoreTxt.setText('Puan: ' + score); levelTxt.setText('Seviye: ' + (idx + 1)); // Reset character position charNode.x = charStartX; charNode.y = charStartY; } function makeChoice(choice) { canChoose = false; var story = stories[currentLevel]; var correct = false; if (choice === 'heaven' && story.type === 'good') correct = true; if (choice === 'hell' && story.type === 'evil') correct = true; // Feedback // (No button feedback, as buttons are not used in drag-to-choose) // Score if (correct) { score += 1; LK.effects.flashObject(charNode, 0x7ed957, 400); } else { score = Math.max(0, score - 1); LK.effects.flashObject(charNode, 0xe74c3c, 400); } scoreTxt.setText('Puan: ' + score); // Next level or end LK.setTimeout(function () { currentLevel += 1; if (currentLevel >= maxLevel) { // Win if score is at least half, else game over if (score >= Math.ceil(maxLevel / 2)) { LK.showYouWin(); } else { LK.showGameOver(); } } else { showLevel(currentLevel); } }, 700); } // --- Start Game --- showLevel(currentLevel); // --- Game update (not used for logic here, but required for completeness) --- game.update = function () { // No per-frame logic needed for MVP };
===================================================================
--- original.js
+++ change.js
@@ -252,13 +252,9 @@
var correct = false;
if (choice === 'heaven' && story.type === 'good') correct = true;
if (choice === 'hell' && story.type === 'evil') correct = true;
// Feedback
- if (choice === 'heaven') {
- heavenBtn.flash(correct ? 0x7ed957 : 0xe74c3c);
- } else {
- hellBtn.flash(correct ? 0x7ed957 : 0xe74c3c);
- }
+ // (No button feedback, as buttons are not used in drag-to-choose)
// Score
if (correct) {
score += 1;
LK.effects.flashObject(charNode, 0x7ed957, 400);