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 button var heavenBtn = new ChoiceButton(); heavenBtn.setType('heaven'); heavenBtn.setText('CENNET'); heavenBtn.x = 2048 / 2 - 350; heavenBtn.y = 2100; game.addChild(heavenBtn); // Hell button var hellBtn = new ChoiceButton(); hellBtn.setType('hell'); hellBtn.setText('CEHENNEM'); hellBtn.x = 2048 / 2 + 350; hellBtn.y = 2100; game.addChild(hellBtn); // --- Button Touch Handling --- var pressedBtn = null; function isInsideBtn(btn, x, y) { var bx = btn.x, by = btn.y; var bw = btn.bg.width, bh = btn.bg.height; return x >= bx - bw / 2 && x <= bx + bw / 2 && y >= by - bh / 2 && y <= by + bh / 2; } game.down = function (x, y, obj) { if (!canChoose) return; if (isInsideBtn(heavenBtn, x, y)) { pressedBtn = heavenBtn; heavenBtn.bg.scaleX = 1.1; heavenBtn.bg.scaleY = 1.1; } else if (isInsideBtn(hellBtn, x, y)) { pressedBtn = hellBtn; hellBtn.bg.scaleX = 1.1; hellBtn.bg.scaleY = 1.1; } }; game.up = function (x, y, obj) { if (!canChoose) return; if (pressedBtn) { pressedBtn.bg.scaleX = 1.0; pressedBtn.bg.scaleY = 1.0; if (isInsideBtn(pressedBtn, x, y)) { if (pressedBtn === heavenBtn) { makeChoice('heaven'); } else if (pressedBtn === hellBtn) { makeChoice('hell'); } } pressedBtn = null; } }; game.move = function (x, y, obj) { // Optional: highlight on hover/touch move (not required for MVP) }; // --- 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 button tints heavenBtn.bg.tint = 0xffffff; hellBtn.bg.tint = 0xffffff; } 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 if (choice === 'heaven') { heavenBtn.flash(correct ? 0x7ed957 : 0xe74c3c); } else { hellBtn.flash(correct ? 0x7ed957 : 0xe74c3c); } // 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
@@ -1,6 +1,278 @@
-/****
+/****
+* 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: 0x000000
-});
\ No newline at end of file
+ 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 button
+var heavenBtn = new ChoiceButton();
+heavenBtn.setType('heaven');
+heavenBtn.setText('CENNET');
+heavenBtn.x = 2048 / 2 - 350;
+heavenBtn.y = 2100;
+game.addChild(heavenBtn);
+// Hell button
+var hellBtn = new ChoiceButton();
+hellBtn.setType('hell');
+hellBtn.setText('CEHENNEM');
+hellBtn.x = 2048 / 2 + 350;
+hellBtn.y = 2100;
+game.addChild(hellBtn);
+// --- Button Touch Handling ---
+var pressedBtn = null;
+function isInsideBtn(btn, x, y) {
+ var bx = btn.x,
+ by = btn.y;
+ var bw = btn.bg.width,
+ bh = btn.bg.height;
+ return x >= bx - bw / 2 && x <= bx + bw / 2 && y >= by - bh / 2 && y <= by + bh / 2;
+}
+game.down = function (x, y, obj) {
+ if (!canChoose) return;
+ if (isInsideBtn(heavenBtn, x, y)) {
+ pressedBtn = heavenBtn;
+ heavenBtn.bg.scaleX = 1.1;
+ heavenBtn.bg.scaleY = 1.1;
+ } else if (isInsideBtn(hellBtn, x, y)) {
+ pressedBtn = hellBtn;
+ hellBtn.bg.scaleX = 1.1;
+ hellBtn.bg.scaleY = 1.1;
+ }
+};
+game.up = function (x, y, obj) {
+ if (!canChoose) return;
+ if (pressedBtn) {
+ pressedBtn.bg.scaleX = 1.0;
+ pressedBtn.bg.scaleY = 1.0;
+ if (isInsideBtn(pressedBtn, x, y)) {
+ if (pressedBtn === heavenBtn) {
+ makeChoice('heaven');
+ } else if (pressedBtn === hellBtn) {
+ makeChoice('hell');
+ }
+ }
+ pressedBtn = null;
+ }
+};
+game.move = function (x, y, obj) {
+ // Optional: highlight on hover/touch move (not required for MVP)
+};
+// --- 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 button tints
+ heavenBtn.bg.tint = 0xffffff;
+ hellBtn.bg.tint = 0xffffff;
+}
+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
+ if (choice === 'heaven') {
+ heavenBtn.flash(correct ? 0x7ed957 : 0xe74c3c);
+ } else {
+ hellBtn.flash(correct ? 0x7ed957 : 0xe74c3c);
+ }
+ // 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
+};
\ No newline at end of file