Code edit (3 edits merged)
Please save this source code
Code edit (7 edits merged)
Please save this source code
User prompt
restore the first logo entrance code : ``` tween(logo, { x: 1024, y: 1366 }, { duration: 2000, easing: tween.elasticIn, onFinish: function onFinish() { isMoving = false; // Set the flag to false when the logo stops moving logoIn = true; } }); ```
User prompt
Ok. clean the code
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: corner is undefined' in or related to this line: 'corner.x = logo.x;' Line Number: 78
Code edit (1 edits merged)
Please save this source code
User prompt
in corners change 50 offset to 20
User prompt
in ` tween(logo, { x: isLogoIn ? logo.width / 2 : 1024, y: isLogoIn ? logo.height / 2 : 1366 } ` use a random corner instead of logo.width / 2, logo.height / 2
User prompt
in ` tween(logo, { x: isLogoIn ? logo.width / 2 : 1024, y: isLogoIn ? logo.height / 2 : 1366 } ` use a random corner
Code edit (3 edits merged)
Please save this source code
User prompt
fix x: isLogoIn ? -logo.width : 1024, y: isLogoIn ? -logo.height : 1366 to stay in screen boundaries
User prompt
update corners so the logo stays with screen boundaries
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Logo class var Logo = Container.expand(function () { var self = Container.call(this); var logoGraphics = self.attachAsset('logo', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ //<Write entity 'classes' with empty functions for important behavior here> var game = new LK.Game({ backgroundColor: 0x5D92B1 //Change background color to pastel dark blue }); /**** * Game Code ****/ var logo = game.addChild(new Logo()); logo.x = -logo.width; logo.y = -logo.height; var logoIn = false; // Track the state of the logo (in or out) var easingIndex = 0; var easingFunctionsIn = [tween.linear, tween.easeIn, tween.elasticIn, tween.bounceIn]; var easingFunctionsInNames = ['linear', 'easeIn', 'elasticIn', 'bounceIn']; var easingFunctionsOut = [tween.linear, tween.easeOut, tween.elasticOut, tween.bounceOut]; var easingFunctionsOutNames = ['linear', 'easeOut', 'elasticOut', 'bounceOut']; var corners = [{ x: logo.width / 2 + 20, y: logo.height / 2 + 20 }, // Top left { x: 2048 - logo.width / 2 - 20, y: logo.height / 2 + 20 }, // Top right { x: logo.width / 2 + 20, y: 2732 - logo.height / 2 - 20 }, // Bottom left { x: 2048 - logo.width / 2 - 20, y: 2732 - logo.height / 2 - 20 } // Bottom right ]; var isMoving = false; // Flag to check if the logo is moving game.down = function (x, y, obj) { if (isMoving) { return; } // If the logo is moving, ignore the click animateLogo(logoIn); //easingText.setText(logoIn ? easingFunctionsInNames[easingIndex % easingFunctionsIn.length] : easingFunctionsOutNames[easingIndex % easingFunctionsOut.length]); }; function animateLogo(isLogoIn) { isMoving = true; // Set the flag to true when the logo starts moving var corner; if (isLogoIn) { // If logo is in, animate it out selectedEasing = easingFunctionsOut[easingIndex % easingFunctionsOut.length]; easingText.setText(easingFunctionsOutNames[easingIndex % easingFunctionsOut.length]); // Randomly select a corner for the logo to appear corner = corners[Math.floor(Math.random() * corners.length)]; } else { // If logo is out, animate it in selectedEasing = easingFunctionsIn[easingIndex % easingFunctionsIn.length]; easingText.setText(easingFunctionsInNames[easingIndex % easingFunctionsIn.length]); corner = corners[Math.floor(Math.random() * corners.length)]; } tween(logo, { x: isLogoIn ? corner.x : 1024, y: isLogoIn ? corner.y : 1366 }, { duration: 2000, easing: selectedEasing, onFinish: function onFinish() { isMoving = false; // Set the flag to false when the logo stops moving if (isLogoIn) { animateLogo(false); } else { easingIndex++; } } }); logoIn = !isLogoIn; } // Add a text 'Easing' in bottom center var easingText = new Text2('Easing', { size: 150, fill: 0xFFFFFF }); easingText.anchor.set(0.5, 1); // Sets anchor to the center of the bottom edge of the text. easingText.x = 1024; // Center of the game width easingText.y = 2632; // Bottom of the game height easingText.tint = 0xFFFFFF; game.addChild(easingText); animateLogo(true);
===================================================================
--- original.js
+++ change.js
@@ -78,16 +78,20 @@
easingText.setText(easingFunctionsInNames[easingIndex % easingFunctionsIn.length]);
corner = corners[Math.floor(Math.random() * corners.length)];
}
tween(logo, {
- x: 1024,
- y: 1366
+ x: isLogoIn ? corner.x : 1024,
+ y: isLogoIn ? corner.y : 1366
}, {
duration: 2000,
- easing: tween.elasticIn,
+ easing: selectedEasing,
onFinish: function onFinish() {
isMoving = false; // Set the flag to false when the logo stops moving
- logoIn = true;
+ if (isLogoIn) {
+ animateLogo(false);
+ } else {
+ easingIndex++;
+ }
}
});
logoIn = !isLogoIn;
}
@@ -99,5 +103,6 @@
easingText.anchor.set(0.5, 1); // Sets anchor to the center of the bottom edge of the text.
easingText.x = 1024; // Center of the game width
easingText.y = 2632; // Bottom of the game height
easingText.tint = 0xFFFFFF;
-game.addChild(easingText);
\ No newline at end of file
+game.addChild(easingText);
+animateLogo(true);
\ No newline at end of file