User prompt
Please fix the bug: 'Script error.' in or related to this line: 'tween(secondSceneBg, {' Line Number: 202 βͺπ‘ Consider importing and using the following plugins: @upit/tween.v1
User prompt
Move string 5 left 10
User prompt
Move string 5 left by 10
User prompt
Move all strings left 10
User prompt
Make each string to the right 100 shorter that the previous one
User prompt
Move all strings to right besides first one
User prompt
Please fix the bug: 'ReferenceError: stringsImgCopy is not defined' in or related to this line: 'stringsImgCopy.strum = function () {' Line Number: 603
User prompt
Swipe to strum strings
User prompt
Remove all strings besides first one
User prompt
Move all strings right 10
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'tween(thirdSceneBg, {' Line Number: 296 βͺπ‘ Consider importing and using the following plugins: @upit/tween.v1
User prompt
Make 5th string 200 shorter
User prompt
Move 5th string left 10
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'tween(thirdSceneBg, {' Line Number: 296 βͺπ‘ Consider importing and using the following plugins: @upit/tween.v1
User prompt
Make 5th string 100 shorter
User prompt
Move 4th string up 50
User prompt
Move 6th string right 80
User prompt
Move 7th string right 60
User prompt
Move 8th string 700 right
User prompt
Move 6th string right 20
User prompt
Fix this please
User prompt
Copy all 4 strings and place them 20 to right of fourth string
User prompt
Make fourth string 100 shorter
User prompt
Copy third string and place it 20 right of third string
User prompt
Copy third string and place it 20 left of third string
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Add the first scene background image, centered and covering the game area // Add the first scene background image, centered and covering the game area in high definition var firstSceneBg = LK.getAsset('First', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, // Use the full game area, but let the engine render the high-res image natively width: 2048, height: 2732 }); game.addChild(firstSceneBg); ; // Add the story image overlay at the bottom of the first scene in high definition var storyOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, // Use the full width, but let the engine render the high-res image natively width: 2048, height: 800 }); game.addChild(storyOverlay); ; // The assets are now initialized at higher resolution for high definition display.; // Add narrative text over the story overlay at the bottom of the first scene var narrativeText = new Text2("In the beginning, the world was silent.\nBut tonight, everything changes...", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); // Center the text horizontally, anchor at the middle-top of the text narrativeText.anchor.set(0.5, 0); // Position the text above the bottom edge, inside the story overlay narrativeText.x = 2048 / 2; narrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px game.addChild(narrativeText); ; // Hoist second scene variables to outer scope for access in both transitions var secondSceneBg, secondDreamBubble, secondDream, secondStoryOverlay, secondNarrativeText; // Add a flag to track if we are on the first scene var onFirstScene = true; // Add a handler to move to the second scene on touch/click anywhere game.down = function (x, y, obj) { if (onFirstScene) { onFirstScene = false; // Fade out first scene elements tween(firstSceneBg, { alpha: 0 }, { duration: 500 }); tween(storyOverlay, { alpha: 0 }, { duration: 500 }); tween(narrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove first scene elements after fade out firstSceneBg.destroy(); storyOverlay.destroy(); narrativeText.destroy(); // Add the second scene background, centered and covering the game area in high definition secondSceneBg = LK.getAsset('Second', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(secondSceneBg); // Add dream bubble image, centered near the top of the scene secondDreamBubble = LK.getAsset('Dreambubble', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + 500, y: 700 - 300, width: 800, height: 787.5, alpha: 0 }); game.addChild(secondDreamBubble); // Add dream image inside the dream bubble secondDream = LK.getAsset('Dream', { anchorX: 0.5, anchorY: 0.5, x: secondDreamBubble.x, y: secondDreamBubble.y - 40, // visually center inside bubble, adjust as needed width: 350, height: 350, alpha: 0 }); game.addChild(secondDream); // Add story overlay image at the bottom of the second scene in high definition secondStoryOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, width: 2048, height: 800, alpha: 0 }); game.addChild(secondStoryOverlay); // Add narrative text for the second scene secondNarrativeText = new Text2("A spark ignites in the darkness.\nA new journey begins tonight.", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); secondNarrativeText.anchor.set(0.5, 0); secondNarrativeText.x = 2048 / 2; secondNarrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px secondNarrativeText.alpha = 0; game.addChild(secondNarrativeText); // Fade in second scene elements tween(secondSceneBg, { alpha: 1 }, { duration: 500 }); tween(secondDreamBubble, { alpha: 1 }, { duration: 500 }); tween(secondDream, { alpha: 1 }, { duration: 500 }); tween(secondStoryOverlay, { alpha: 1 }, { duration: 500 }); tween(secondNarrativeText, { alpha: 1 }, { duration: 500 }); } }); // Hoist third scene variables to outer scope for access in both transitions var thirdSceneBg, thirdStoryOverlay, thirdNarrativeText; // Hoist fourth scene variables to outer scope for access in both transitions var fourthSceneBg, fourthStoryOverlay, fourthNarrativeText; // Hoist fifth scene variables to outer scope for access in both transitions var fifthSceneBg, fifthStoryOverlay, fifthNarrativeText; // Add handler for third scene transition var onSecondScene = true; game.down = function (x, y, obj) { if (onSecondScene) { onSecondScene = false; // Fade out second scene elements tween(secondSceneBg, { alpha: 0 }, { duration: 500 }); tween(secondDreamBubble, { alpha: 0 }, { duration: 500 }); tween(secondDream, { alpha: 0 }, { duration: 500 }); tween(secondStoryOverlay, { alpha: 0 }, { duration: 500 }); tween(secondNarrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove second scene elements after fade out secondSceneBg.destroy(); if (secondDreamBubble) { secondDreamBubble.destroy(); } if (secondDream) { secondDream.destroy(); } secondStoryOverlay.destroy(); secondNarrativeText.destroy(); // Add the third scene background, centered and covering the game area in high definition thirdSceneBg = LK.getAsset('Third', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(thirdSceneBg); // Add story overlay image at the bottom of the third scene in high definition thirdStoryOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, width: 2048, height: 800, alpha: 0 }); game.addChild(thirdStoryOverlay); // Add narrative text for the third scene thirdNarrativeText = new Text2("The stars align, and destiny calls.\nThe adventure truly begins.", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); thirdNarrativeText.anchor.set(0.5, 0); thirdNarrativeText.x = 2048 / 2; thirdNarrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px thirdNarrativeText.alpha = 0; game.addChild(thirdNarrativeText); // Fade in third scene elements if (thirdSceneBg && thirdStoryOverlay && thirdNarrativeText) { tween(thirdSceneBg, { alpha: 1 }, { duration: 500 }); tween(thirdStoryOverlay, { alpha: 1 }, { duration: 500 }); tween(thirdNarrativeText, { alpha: 1 }, { duration: 500 }); } } }); // Add handler for fourth scene transition var onThirdScene = true; game.down = function (x, y, obj) { if (onThirdScene) { onThirdScene = false; // Fade out third scene elements tween(thirdSceneBg, { alpha: 0 }, { duration: 500 }); tween(thirdStoryOverlay, { alpha: 0 }, { duration: 500 }); tween(thirdNarrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove third scene elements after fade out thirdSceneBg.destroy(); thirdStoryOverlay.destroy(); thirdNarrativeText.destroy(); // Hoist fourth scene variables to outer scope for access in both transitions fourthSceneBg = LK.getAsset('Fourth', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(fourthSceneBg); // Add story overlay image at the bottom of the fourth scene in high definition fourthStoryOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, width: 2048, height: 800, alpha: 0 }); game.addChild(fourthStoryOverlay); // Add narrative text for the fourth scene fourthNarrativeText = new Text2("A new chapter unfolds beneath the silent moon.\nYour legend is just beginning.", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); fourthNarrativeText.anchor.set(0.5, 0); fourthNarrativeText.x = 2048 / 2; fourthNarrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px fourthNarrativeText.alpha = 0; game.addChild(fourthNarrativeText); // Fade in fourth scene elements tween(fourthSceneBg, { alpha: 1 }, { duration: 500 }); tween(fourthStoryOverlay, { alpha: 1 }, { duration: 500 }); tween(fourthNarrativeText, { alpha: 1 }, { duration: 500 }); } }); // Hoist fourth scene variables to outer scope for access in both transitions var fourthSceneBg, fourthStoryOverlay, fourthNarrativeText; // Add handler for fifth scene transition var onFourthScene = true; game.down = function (x, y, obj) { if (onFourthScene) { onFourthScene = false; // Fade out fourth scene elements tween(fourthSceneBg, { alpha: 0 }, { duration: 500 }); tween(fourthStoryOverlay, { alpha: 0 }, { duration: 500 }); tween(fourthNarrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove fourth scene elements after fade out fourthSceneBg.destroy(); fourthStoryOverlay.destroy(); fourthNarrativeText.destroy(); // Hoist fifth scene variables to outer scope for access in both transitions fifthSceneBg = LK.getAsset('Fifth', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(fifthSceneBg); // Add story overlay image at the bottom of the fifth scene in high definition fifthStoryOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, width: 2048, height: 800, alpha: 0 }); game.addChild(fifthStoryOverlay); // Add narrative text for the fifth scene fifthNarrativeText = new Text2("The journey continues, brighter than ever.\nA new dawn awaits.", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); fifthNarrativeText.anchor.set(0.5, 0); fifthNarrativeText.x = 2048 / 2; fifthNarrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px fifthNarrativeText.alpha = 0; game.addChild(fifthNarrativeText); // Fade in fifth scene elements tween(fifthSceneBg, { alpha: 1 }, { duration: 500 }); tween(fifthStoryOverlay, { alpha: 1 }, { duration: 500 }); tween(fifthNarrativeText, { alpha: 1 }, { duration: 500 }); } }); // Hoist fifth scene variables to outer scope for access in both transitions var fifthSceneBg, fifthStoryOverlay, fifthNarrativeText; // Add handler for sixth scene transition var onFifthScene = true; game.down = function (x, y, obj) { if (onFifthScene) { onFifthScene = false; // Fade out fifth scene elements tween(fifthSceneBg, { alpha: 0 }, { duration: 500 }); tween(fifthStoryOverlay, { alpha: 0 }, { duration: 500 }); tween(fifthNarrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove fifth scene elements after fade out fifthSceneBg.destroy(); fifthStoryOverlay.destroy(); fifthNarrativeText.destroy(); // Add the sixth scene background, centered and covering the game area in high definition var sixthSceneBg = LK.getAsset('Sixth', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(sixthSceneBg); // Add story overlay image at the bottom of the sixth scene in high definition var sixthStoryOverlay = LK.getAsset('Story', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732, width: 2048, height: 800, alpha: 0 }); game.addChild(sixthStoryOverlay); // Add narrative text for the sixth scene var sixthNarrativeText = new Text2("The story continues beyond the horizon.\nYour adventure is limitless.", { size: 90, fill: 0x000000, align: "center", wordWrap: true, wordWrapWidth: 1800, fontWeight: "bold", font: "Times New Roman" }); sixthNarrativeText.anchor.set(0.5, 0); sixthNarrativeText.x = 2048 / 2; sixthNarrativeText.y = 2732 - 800 + 80 + 50 + 20 + 50; // moved down by 50px sixthNarrativeText.alpha = 0; game.addChild(sixthNarrativeText); // Fade in sixth scene elements tween(sixthSceneBg, { alpha: 1 }, { duration: 500 }); tween(sixthStoryOverlay, { alpha: 1 }, { duration: 500 }); tween(sixthNarrativeText, { alpha: 1 }, { duration: 500 }); // Handler for transitioning from sixth scene to end (no puzzleone scene) var onSixthScene = true; game.down = function (x, y, obj) { if (onSixthScene) { onSixthScene = false; // Fade out sixth scene elements tween(sixthSceneBg, { alpha: 0 }, { duration: 500 }); tween(sixthStoryOverlay, { alpha: 0 }, { duration: 500 }); tween(sixthNarrativeText, { alpha: 0 }, { duration: 500, onFinish: function onFinish() { // Remove sixth scene elements after fade out sixthSceneBg.destroy(); sixthStoryOverlay.destroy(); sixthNarrativeText.destroy(); // Add puzzleone image, centered and covering the game area var puzzleoneBg = LK.getAsset('Puzzleone', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 0 }); game.addChild(puzzleoneBg); // Add strings image, centered and covering the game area, above puzzleoneBg var stringsImg = LK.getAsset('Strings', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 - 320, y: 2732 / 2 - 150, width: 25, height: 2200, // 500px taller alpha: 0 }); // Add all string images to an array for swipe detection var allStrings = []; // First string stringsImg.strum = function () { tween(stringsImg, { alpha: 0.2 }, { duration: 60, onFinish: function onFinish() { tween(stringsImg, { alpha: 1 }, { duration: 60 }); } }); }; allStrings.push(stringsImg); game.addChild(stringsImg); // Second string var stringsImgCopy = LK.getAsset('Strings', { anchorX: 0.5, anchorY: 0.5, x: stringsImg.x + 25 + 30, // 25 is width, 30px to the right (moved 20px more) y: stringsImg.y, width: 25, height: stringsImg.height, alpha: 0 }); stringsImgCopy.strum = function () { tween(stringsImgCopy, { alpha: 0.2 }, { duration: 60, onFinish: function onFinish() { tween(stringsImgCopy, { alpha: 1 }, { duration: 60 }); } }); }; allStrings.push(stringsImgCopy); game.addChild(stringsImgCopy); // Third string var stringsImgCopy2 = LK.getAsset('Strings', { anchorX: 0.5, anchorY: 0.5, x: stringsImgCopy.x + 25 + 30, // 25 is width, 30px to the right (moved 20px more) y: stringsImgCopy.y, width: 25, height: stringsImgCopy.height, alpha: 0 }); stringsImgCopy2.strum = function () { tween(stringsImgCopy2, { alpha: 0.2 }, { duration: 60, onFinish: function onFinish() { tween(stringsImgCopy2, { alpha: 1 }, { duration: 60 }); } }); }; allStrings.push(stringsImgCopy2); game.addChild(stringsImgCopy2); // Fourth string var stringsImgCopy3 = LK.getAsset('Strings', { anchorX: 0.5, anchorY: 0.5, x: stringsImgCopy2.x + 25 + 30, // 25 is width, 30px to the right (moved 20px more) y: stringsImgCopy2.y, width: 25, height: stringsImgCopy2.height, alpha: 0 }); stringsImgCopy3.strum = function () { tween(stringsImgCopy3, { alpha: 0.2 }, { duration: 60, onFinish: function onFinish() { tween(stringsImgCopy3, { alpha: 1 }, { duration: 60 }); } }); }; allStrings.push(stringsImgCopy3); game.addChild(stringsImgCopy3); // Fifth string (copy) var stringCopies = []; var baseX = stringsImgCopy3.x + 25 + 40; // 25 is width, 40px to the right (moved 20px more) var baseY = stringsImgCopy3.y; var baseHeights = [stringsImg.height, stringsImgCopy.height, stringsImgCopy2.height, stringsImgCopy3.height]; var stringX = baseX + 10; var stringCopy = LK.getAsset('Strings', { anchorX: 0.5, anchorY: 0.5, x: stringX, y: baseY, width: 25, height: baseHeights[0] - 200, alpha: 0 }); stringCopy.strum = function () { tween(stringCopy, { alpha: 0.2 }, { duration: 60, onFinish: function onFinish() { tween(stringCopy, { alpha: 1 }, { duration: 60 }); } }); }; allStrings.push(stringCopy); game.addChild(stringCopy); tween(puzzleoneBg, { alpha: 1 }, { duration: 500 }); tween(stringsImg, { alpha: 1 }, { duration: 500 }); tween(stringsImgCopy, { alpha: 1 }, { duration: 500 }); tween(stringsImgCopy2, { alpha: 1 }, { duration: 500 }); tween(stringsImgCopy3, { alpha: 1 }, { duration: 500 }); tween(stringCopy, { alpha: 1 }, { duration: 500 }); stringCopies.push(stringCopy); // --- Swipe to strum logic --- var lastStrummed = {}; function pointInString(x, y, stringObj) { // Check if (x, y) is inside the string's bounds var left = stringObj.x - stringObj.width / 2; var right = stringObj.x + stringObj.width / 2; var top = stringObj.y - stringObj.height / 2; var bottom = stringObj.y + stringObj.height / 2; return x >= left && x <= right && y >= top && y <= bottom; } game.move = function (x, y, obj) { // For each string, check if the pointer is inside and wasn't last frame for (var i = 0; i < allStrings.length; i++) { var s = allStrings[i]; var id = "string" + i; if (!lastStrummed[id]) lastStrummed[id] = false; var inside = pointInString(x, y, s); if (!lastStrummed[id] && inside) { // Strum! s.strum(); } lastStrummed[id] = inside; } }; game.up = function (x, y, obj) { // Reset all lastStrummed so next swipe can retrigger for (var i = 0; i < allStrings.length; i++) { lastStrummed["string" + i] = false; } }; } }); } }; } }); } }; } }; } }; } }; } };
===================================================================
--- original.js
+++ change.js
@@ -587,10 +587,10 @@
// Second string
var stringsImgCopy = LK.getAsset('Strings', {
anchorX: 0.5,
anchorY: 0.5,
- x: stringsImg.x + 25 + 10,
- // 25 is width, 10px to the right
+ x: stringsImg.x + 25 + 30,
+ // 25 is width, 30px to the right (moved 20px more)
y: stringsImg.y,
width: 25,
height: stringsImg.height,
alpha: 0
@@ -614,10 +614,10 @@
// Third string
var stringsImgCopy2 = LK.getAsset('Strings', {
anchorX: 0.5,
anchorY: 0.5,
- x: stringsImgCopy.x + 25 + 10,
- // 25 is width, 10px to the right
+ x: stringsImgCopy.x + 25 + 30,
+ // 25 is width, 30px to the right (moved 20px more)
y: stringsImgCopy.y,
width: 25,
height: stringsImgCopy.height,
alpha: 0
@@ -641,10 +641,10 @@
// Fourth string
var stringsImgCopy3 = LK.getAsset('Strings', {
anchorX: 0.5,
anchorY: 0.5,
- x: stringsImgCopy2.x + 25 + 10,
- // 25 is width, 10px to the right
+ x: stringsImgCopy2.x + 25 + 30,
+ // 25 is width, 30px to the right (moved 20px more)
y: stringsImgCopy2.y,
width: 25,
height: stringsImgCopy2.height,
alpha: 0
@@ -666,9 +666,9 @@
allStrings.push(stringsImgCopy3);
game.addChild(stringsImgCopy3);
// Fifth string (copy)
var stringCopies = [];
- var baseX = stringsImgCopy3.x + 25 + 20; // 25 is width, 20px to the right
+ var baseX = stringsImgCopy3.x + 25 + 40; // 25 is width, 40px to the right (moved 20px more)
var baseY = stringsImgCopy3.y;
var baseHeights = [stringsImg.height, stringsImgCopy.height, stringsImgCopy2.height, stringsImgCopy3.height];
var stringX = baseX + 10;
var stringCopy = LK.getAsset('Strings', {
Add more vibrant colours to picture
Make this scene more modern like in the present
A 4x5 grid in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Remove man
Saxophone in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Harp in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Drum in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Flute in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Question mark professor Layton game style. In-Game asset. 2d. High contrast. No shadows
12yo blonde girl in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Cute little10yo girl brown hair in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Cute little 7yo girl with blonde curly hair. Professor Layton game style In-Game asset. 2d. High contrast. No shadows
15 yo boy with short scruffy blonde hair professor Layton game style. In-Game asset. 2d. High contrast. No shadows
18yo girl with short brown hair professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Cat in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
White dog with brown patch on eyes professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Turtle in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Frog in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Goldfish in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Basketball ball professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Lego bricks professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Video game console professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Teddy bear professor Layton game style. In-Game asset. 2d. High contrast. No shadows
These dolls in professor Layton game art style
Hot chips or fries in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Bowl of spaghetti in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Pizza in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Chocolate donut in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Ice cream cone in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Make her crack a small smile
The word "correct" in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
The word " incorrect" in professor Layton game style. In-Game asset. 2d. High contrast. No shadows
Green tick in professor Layton gamestyle. In-Game asset. 2d. High contrast. No shadows
Button with RETRY PUZZLE on it in professor Layton game style artwork In-Game asset. 2d. High contrast. No shadows
Information symbol in professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Number 1 button professor Layton game style artwork. In-Game asset. 2d. High contrast. No shadows
Number 2
Number 3
Number 4
Number 5
Remove clock
Make sure J and Y is not cut off
How to play button in professor Layton game style font. In-Game asset. 2d. High contrast. No shadows
Make robe hang lower so you can't see it's feet
Make it say play new puzzle
A 16:9 title banner