User prompt
Move What asset 6cm down
User prompt
make only the questions color to white ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Move FinalScreenAsset 8cm down
User prompt
Move FinalScreenAsset 5cm down and Move What asset 6cm down
User prompt
Move FinalScreenAsset 5cm down and Move What asset 6cm down
User prompt
Show FinalScreenAsset at youwinWoman screen
User prompt
Put What asset under surprisedWoman asset again
User prompt
Move final screen asset down to under youwinWoman asset
User prompt
Make last screen asset another asset. Not "What" its different
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'fill')' in or related to this line: 'questionText.style.fill = 0xffffff;' Line Number: 322
User prompt
Put an asset to youwinWoman i make it you win banner. And Make questions color to white.
User prompt
Plus last two commands and move up again
User prompt
A little up too.
User prompt
Too much down. Move it a little up
User prompt
Move mouth a tiny little down and a tiny left only at angryWoman page
User prompt
Move mouth 0.07cm down and a tiny left only at angryWoman page
User prompt
Move mouth 0.1cm down and a tiny left only at angryWoman page
User prompt
Move mouth 0.2cm down and a tiny left only at angryWoman page
User prompt
Move mouth 3cm up only at angryWoman page
User prompt
Move mouth 1cm down and a tiny left only at angryWoman page
User prompt
Move mouth 2cm down and a very little right only at angryWoman page
User prompt
Move mouth 5cm up and a little left only at angryWoman page
User prompt
Move mouth 4cm up only at angryWoman page
User prompt
Move mouth 2 cm up only at angryWoman page
User prompt
Move mouth 1 cm up only at angryWoman page
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Woman character class var Woman = Container.expand(function () { var self = Container.call(this); // State: 'happy', 'angry', 'surprised' self.state = 'happy'; // Attach face (default: happy) self.face = self.attachAsset('happyWoman', { anchorX: 0.5, anchorY: 0.5 }); // Attach mouth self.mouth = self.attachAsset('mouth', { anchorX: 0.5, anchorY: 0.5, x: -15, // move 3.75mm left (35px left from center, 5mm right from previous) // centered horizontally, but offset slightly left y: 40 // move up 1cm (40px from woman's center) }); // Animate mouth open/close self.mouthTalking = false; self.mouthTween = null; self.setState = function (state) { if (self.state === state) { return; } self.state = state; // Remove old face self.face.destroy(); // Add new face var faceId = 'happyWoman'; if (state === 'angry') { faceId = 'angryWoman'; } if (state === 'surprised') { faceId = 'surprisedWoman'; } self.face = self.attachAsset(faceId, { anchorX: 0.5, anchorY: 0.5 }); // Keep mouth on top if (self.mouth && typeof self.mouth.parent !== "undefined" && self.mouth.parent !== null) { if (typeof self.mouth.parent.removeChild === "function") { self.mouth.parent.removeChild(self.mouth); } } self.addChild(self.mouth); }; self.startTalking = function () { if (self.mouthTalking) { return; } self.mouthTalking = true; animateMouth(); }; self.stopTalking = function () { self.mouthTalking = false; if (self.mouthTween) { tween.stop(self.mouth); self.mouthTween = null; } // Reset mouth to closed self.mouth.scaleY = 1; }; function animateMouth() { if (!self.mouthTalking) { return; } // Open self.mouthTween = tween(self.mouth, { scaleY: 2 }, { duration: 120, easing: tween.easeIn, onFinish: function onFinish() { // Close self.mouthTween = tween(self.mouth, { scaleY: 1 }, { duration: 120, easing: tween.easeOut, onFinish: function onFinish() { // Repeat if still talking animateMouth(); } }); } }); } return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xf0f0f0 }); /**** * Game Code ****/ // New asset: 'background' (light gray, editable later) // New asset: 'What' (placeholder, 400x400, editable later) // Heart (for lives) // Mouth (Ellipse for talking) // Surprised Woman (Yellow Square) // Angry Woman (Purple Square) // Happy Woman (Red Square) // Questions and answers var questions = [{ text: "Do you know why you are here?", answers: [{ text: "Yes", correct: false }, { text: "Of course, baby!", correct: false }, { text: "Who am I?", correct: true }] }, { text: "Do you think I don’t know who you are?", answers: [{ text: "The Thunderstorm?", correct: false }, { text: "A helpless servant?", correct: false }, { text: "A curious caterpillar?", correct: true }] }, { text: "Are you curious about me?", answers: [{ text: "No, about who I am", correct: true }, { text: "No, about my fate", correct: false }, { text: "Yes", correct: false }] }, { text: "Are you a valuable person?", answers: [{ text: "Am I a person?", correct: true }, { text: "Shine bright like a diamond", correct: false }, { text: "I am the ONE!", correct: false }] }, { text: "Are you kidding me?", answers: [{ text: "No!", correct: true }, { text: "You are god damn right!", correct: false }, { text: "I am the Joker!", correct: false }] }]; // Shuffle answers for each question function shuffle(arr) { for (var i = arr.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var t = arr[i]; arr[i] = arr[j]; arr[j] = t; } return arr; } for (var i = 0; i < questions.length; i++) { questions[i].answers = shuffle(questions[i].answers.slice()); } // Game state var currentQuestion = 0; var hearts = 3; var maxHearts = 3; var woman = null; var answerButtons = []; var questionText = null; var heartIcons = []; var angryTimeout = null; var surprisedShown = false; // Layout constants var womanCenterX = 2048 / 2; var womanCenterY = 900; var questionY = 1500; var answerStartY = 1750; var answerSpacing = 220; // Add background asset (behind all elements) var backgroundAsset = LK.getAsset('background', { anchorX: 0.5, anchorY: 0, x: 2048 / 2, y: 0 }); game.addChild(backgroundAsset); // Add woman character woman = new Woman(); game.addChild(woman); woman.x = womanCenterX; woman.y = womanCenterY; // Add hearts (below answer buttons, centered) for (var h = 0; h < maxHearts; h++) { var heart = LK.getAsset('heart', { anchorX: 0.5, anchorY: 0.5 }); // Place below answer buttons, centered horizontally // Place hearts in a row, centered at 2048/2, below last answer button var totalWidth = (maxHearts - 1) * 100; heart.x = 2048 / 2 - totalWidth / 2 + h * 100; heart.y = answerStartY + 3 * answerSpacing + 100; // 100px below last answer button game.addChild(heart); heartIcons.push(heart); } // Add question text questionText = new Text2('', { size: 90, fill: 0xffffff }); questionText.anchor.set(0.5, 0); questionText.x = 2048 / 2; questionText.y = questionY; game.addChild(questionText); // Answer button class function createAnswerButton(idx) { var btn = new Container(); // Button background var bg = btn.attachAsset('box', { width: 900, height: 160, color: 0x000000, anchorX: 0.5, anchorY: 0.5 }); // Button text var txt = new Text2('', { size: 70, fill: 0x222222 }); txt.anchor.set(0.5, 0.5); txt.x = 0; txt.y = 0; btn.addChild(txt); // Position btn.x = 2048 / 2; btn.y = answerStartY + idx * answerSpacing; // Store for later btn.bg = bg; btn.txt = txt; btn.idx = idx; // Add to game game.addChild(btn); // Touch/click handler btn.down = function (x, y, obj) { handleAnswer(idx); }; return btn; } // Create answer buttons for (var i = 0; i < 3; i++) { var btn = createAnswerButton(i); answerButtons.push(btn); } // Update hearts display function updateHearts() { for (var i = 0; i < heartIcons.length; i++) { heartIcons[i].alpha = i < hearts ? 1 : 0.2; } } // Show question and answers function showQuestion() { if (currentQuestion >= questions.length) { // Show surprised woman showSurprised(); return; } var q = questions[currentQuestion]; questionText.setText(q.text); for (var i = 0; i < 3; i++) { var ans = q.answers[i]; answerButtons[i].txt.setText(ans ? ans.text : ''); answerButtons[i].visible = !!ans; answerButtons[i].bg.color = 0xf0f0f0; } // Woman happy woman.setState('happy'); woman.startTalking(); // Stop talking after 1.2s LK.setTimeout(function () { woman.stopTalking(); }, 1200); } // Handle answer selection function handleAnswer(idx) { if (currentQuestion >= questions.length) { return; } var q = questions[currentQuestion]; var ans = q.answers[idx]; if (!ans) { return; } // Disable buttons for now for (var i = 0; i < 3; i++) { answerButtons[i].down = null; } if (ans.correct) { // Correct: progress answerButtons[idx].bg.color = 0x83de44; // green woman.setState('happy'); woman.startTalking(); LK.setTimeout(function () { woman.stopTalking(); currentQuestion++; showQuestion(); // Re-enable buttons for (var i = 0; i < 3; i++) { answerButtons[i].down = function (i) { return function (x, y, obj) { handleAnswer(i); }; }(i); } }, 900); } else { // Wrong: lose heart, angry woman, flash answerButtons[idx].bg.color = 0xff3b3b; // red hearts--; updateHearts(); woman.setState('angry'); woman.startTalking(); LK.effects.flashObject(woman, 0x8e44ad, 300); // After 3s, return to happy or end game if (angryTimeout) { LK.clearTimeout(angryTimeout); } angryTimeout = LK.setTimeout(function () { woman.stopTalking(); if (hearts <= 0) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } woman.setState('happy'); // Re-enable buttons for (var i = 0; i < 3; i++) { answerButtons[i].down = function (i) { return function (x, y, obj) { handleAnswer(i); }; }(i); } }, 3000); } } // Show surprised woman (win) function showSurprised() { if (surprisedShown) { return; } surprisedShown = true; // Remove mouth if present and parent is not undefined/null if (woman.mouth && typeof woman.mouth.parent !== "undefined" && woman.mouth.parent !== null) { if (typeof woman.mouth.parent.removeChild === "function") { woman.mouth.parent.removeChild(woman.mouth); } } // Show only surprisedWoman face woman.setState('surprised'); // Add 'What' asset under surprisedWoman var whatAsset = LK.getAsset('What', { anchorX: 0.5, anchorY: 0.5, x: womanCenterX, y: womanCenterY + 600 + 300 + 300 // move 6cm (300px) + 6cm (300px) further down to be under surprisedWoman asset }); game.addChild(whatAsset); // Remove 'What' asset after 3s (when game finishes) LK.setTimeout(function () { if (whatAsset && typeof whatAsset.destroy === "function") { whatAsset.destroy(); } }, 3000); // After 3 seconds, show youwinWoman (no mouth) LK.setTimeout(function () { // Remove mouth if present (defensive) if (woman.mouth && typeof woman.mouth.parent !== "undefined" && woman.mouth.parent !== null) { if (typeof woman.mouth.parent.removeChild === "function") { woman.mouth.parent.removeChild(woman.mouth); } } // Show FinalScreenAsset under youwinWoman var finalScreenAsset = LK.getAsset('FinalScreenAsset', { anchorX: 0.5, anchorY: 0.5, x: womanCenterX, y: womanCenterY + 600 + 250 + 400 // move 5cm (250px) + 8cm (400px) further down under youwinWoman asset }); game.addChild(finalScreenAsset); // Swap to youwinWoman face (add asset if not present) if (woman.face) { woman.face.destroy(); } woman.face = woman.attachAsset('youwinWoman', { anchorX: 0.5, anchorY: 0.5 }); }, 3000); // Hide answer buttons for (var i = 0; i < 3; i++) { answerButtons[i].visible = false; } // Show message (optional, can be blank) questionText.setText(""); // After 3 seconds, show youwinWoman (no mouth) LK.setTimeout(function () { // Remove mouth if present (defensive) if (woman.mouth && typeof woman.mouth.parent !== "undefined" && woman.mouth.parent !== null) { if (typeof woman.mouth.parent.removeChild === "function") { woman.mouth.parent.removeChild(woman.mouth); } } // Swap to youwinWoman face (add asset if not present) if (woman.face) { woman.face.destroy(); } woman.face = woman.attachAsset('youwinWoman', { anchorX: 0.5, anchorY: 0.5 }); // After 3 more seconds, finish the game LK.setTimeout(function () { LK.showYouWin(); }, 3000); }, 3000); } // Initial state updateHearts(); showQuestion(); // Make sure answer buttons are re-enabled after each question for (var i = 0; i < 3; i++) { answerButtons[i].down = function (i) { return function (x, y, obj) { handleAnswer(i); }; }(i); } // No dragging or move events needed for this game // No update loop needed
===================================================================
--- original.js
+++ change.js
@@ -393,9 +393,9 @@
var whatAsset = LK.getAsset('What', {
anchorX: 0.5,
anchorY: 0.5,
x: womanCenterX,
- y: womanCenterY + 600 + 300 // move 6cm (300px) further down to be under surprisedWoman asset
+ y: womanCenterY + 600 + 300 + 300 // move 6cm (300px) + 6cm (300px) further down to be under surprisedWoman asset
});
game.addChild(whatAsset);
// Remove 'What' asset after 3s (when game finishes)
LK.setTimeout(function () {
Delete the mouth. Woman have no mouth. Just same skin color.
An anime womans mouth. Just mouth.. In-Game asset. 2d. High contrast. No shadows
Fill it red. Its a red rectangle. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Delete the mouth. Woman have no mouth. Just same skin color.
Make her shy and seksier
Show her from a little further away and make a victory sign with her hand and smiley face
same photo but make a victory sign with her hand and smile
Same style bu write: DON'T YOU KNOW WHO YOU ARE
Write "TAP TO START" with a comic font. In-Game asset. 2d. High contrast. No shadows
Write comics style What? in golden color. In-Game asset. 2d. High contrast. No shadows
make same heath like a woman
delete blacks