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 easingFunctionsOut = [tween.linear, tween.easeOut, tween.elasticOut, tween.bounceOut]; var easingFunctionsOutNames = ['linear', 'easeOut', 'elasticOut', 'bounceOut']; var easingFunctionsInNames = ['linear', 'easeIn', 'elasticIn', 'bounceIn']; 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)]; logo.x = corner.x; logo.y = corner.y; } else { // If logo is out, animate it in selectedEasing = easingFunctionsIn[easingIndex % easingFunctionsIn.length]; easingText.setText(easingFunctionsInNames[easingIndex % easingFunctionsIn.length]); corner = { x: logo.x, y: logo.y }; } 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); } } }); logoIn = !isLogoIn; easingIndex++; } 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; } }); // 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);
===================================================================
--- original.js
+++ change.js
@@ -65,24 +65,24 @@
};
function animateLogo(isLogoIn) {
isMoving = true; // Set the flag to true when the logo starts moving
var corner;
- if (!isLogoIn) {
- // If logo is out, animate it in
- selectedEasing = easingFunctionsIn[easingIndex % easingFunctionsIn.length];
- easingText.setText(easingFunctionsInNames[easingIndex % easingFunctionsIn.length]);
- corner = {
- x: logo.x,
- y: logo.y
- };
- } else {
+ 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)];
logo.x = corner.x;
logo.y = corner.y;
+ } else {
+ // If logo is out, animate it in
+ selectedEasing = easingFunctionsIn[easingIndex % easingFunctionsIn.length];
+ easingText.setText(easingFunctionsInNames[easingIndex % easingFunctionsIn.length]);
+ corner = {
+ x: logo.x,
+ y: logo.y
+ };
}
tween(logo, {
x: isLogoIn ? corner.x : 1024,
y: isLogoIn ? corner.y : 1366