/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { savedEggs: [] }); /**** * Classes ****/ var BrushStroke = Container.expand(function (color, size) { var self = Container.call(this); var stroke = self.attachAsset('brushStroke', { anchorX: 0.5, anchorY: 0.5, scaleX: size / 30, scaleY: size / 30 }); stroke.tint = color; return self; }); var Button = Container.expand(function (label, color) { var self = Container.call(this); var background = self.attachAsset('buttonBg', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(label, { size: 30, fill: 0xFFFFFF }); text.anchor.set(0.5, 0.5); self.addChild(text); if (color !== undefined) { background.tint = color; } self.down = function () { tween(background, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; self.up = function () { tween(background, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; return self; }); var ColorButton = Container.expand(function (color) { var self = Container.call(this); var button = self.attachAsset('colorButton', { anchorX: 0.5, anchorY: 0.5 }); button.tint = color; self.color = color; self.down = function () { tween(button, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; self.up = function () { tween(button, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; return self; }); var CompletedEgg = Container.expand(function (baseColor) { var self = Container.call(this); var eggGraphic = self.attachAsset('completedEgg', { anchorX: 0.5, anchorY: 0.5 }); eggGraphic.tint = baseColor || 0xFFFFFF; // Add some random decoration to make each egg look unique for (var i = 0; i < 5; i++) { var glitter = self.attachAsset('glitter', { anchorX: 0.5, anchorY: 0.5, x: (Math.random() - 0.5) * 80, y: (Math.random() - 0.5) * 120 }); glitter.tint = 0xFFD700 + Math.floor(Math.random() * 0x555555); } return self; }); var EasterEgg = Container.expand(function () { var self = Container.call(this); var eggBase = self.attachAsset('eggBase', { anchorX: 0.5, anchorY: 0.5 }); var designContainer = new Container(); self.addChild(designContainer); self.addDesign = function (x, y, designElement) { var localPosition = designContainer.toLocal({ x: x, y: y }, game); designElement.x = localPosition.x; designElement.y = localPosition.y; designContainer.addChild(designElement); }; self.clearDesigns = function () { while (designContainer.children.length > 0) { designContainer.removeChild(designContainer.children[0]); } }; self.rotate = function (angle) { eggBase.rotation += angle; designContainer.rotation += angle; }; self.captureDesign = function () { // In a real implementation, this would create a snapshot of the egg // For this simplified version, we just create a new completed egg with the same tint var completedEgg = new CompletedEgg(eggBase.tint); return completedEgg; }; return self; }); var Sticker = Container.expand(function (type, scale) { var self = Container.call(this); var stickerAsset; if (type === 'star') { stickerAsset = self.attachAsset('stickerStar', { anchorX: 0.5, anchorY: 0.5, scaleX: scale, scaleY: scale }); } else if (type === 'heart') { stickerAsset = self.attachAsset('stickerHeart', { anchorX: 0.5, anchorY: 0.5, scaleX: scale, scaleY: scale }); } self.down = function () { tween(stickerAsset, { scaleX: scale * 0.9, scaleY: scale * 0.9 }, { duration: 100 }); }; self.up = function () { tween(stickerAsset, { scaleX: scale, scaleY: scale }, { duration: 100 }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xAFEEEE // Light turquoise background color }); /**** * Game Code ****/ // Define color palette var colors = [0xFF0000, // Red 0xFF7F00, // Orange 0xFFFF00, // Yellow 0x00FF00, // Green 0x0000FF, // Blue 0x4B0082, // Indigo 0x9400D3, // Violet 0xFFFFFF, // White 0x000000 // Black ]; // Define brush sizes var brushSizes = [10, 20, 30]; // Initialize game variables var currentColor = colors[0]; var currentBrushSize = brushSizes[1]; var currentTool = 'brush'; var isPainting = false; var lastX, lastY; var savedEggs = storage.savedEggs || []; // Create main egg var easterEgg = new EasterEgg(); easterEgg.x = 2048 / 2; easterEgg.y = 2732 / 2 - 200; game.addChild(easterEgg); // Create UI components // Tool panel var toolPanel = LK.getAsset('toolPanel', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 - 180 }); game.addChild(toolPanel); // Color panel var colorPanel = LK.getAsset('colorPanel', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 - 320 }); game.addChild(colorPanel); // Add color buttons var colorButtons = []; for (var i = 0; i < colors.length; i++) { var colorButton = new ColorButton(colors[i]); colorButton.x = i * 70 + 490; colorButton.y = 2732 - 320; game.addChild(colorButton); colorButtons.push(colorButton); // Add click handler (function (color) { colorButton.down = function () { tween(colorButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); currentColor = color; }; colorButton.up = function () { tween(colorButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; })(colors[i]); } // Create tool buttons var brushButton = new Button("Brush", 0x6495ED); brushButton.x = 400; brushButton.y = 2732 - 180; game.addChild(brushButton); brushButton.down = function () { tween(brushButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; brushButton.up = function () { tween(brushButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); currentTool = 'brush'; }; var stickerStarButton = new Button("Star", 0xFFD700); stickerStarButton.x = 550; stickerStarButton.y = 2732 - 180; game.addChild(stickerStarButton); stickerStarButton.down = function () { tween(stickerStarButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; stickerStarButton.up = function () { tween(stickerStarButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); currentTool = 'star'; }; var stickerHeartButton = new Button("Heart", 0xFF0000); stickerHeartButton.x = 700; stickerHeartButton.y = 2732 - 180; game.addChild(stickerHeartButton); stickerHeartButton.down = function () { tween(stickerHeartButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; stickerHeartButton.up = function () { tween(stickerHeartButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); currentTool = 'heart'; }; var rotateLeftButton = new Button("< Rotate", 0x9370DB); rotateLeftButton.x = 850; rotateLeftButton.y = 2732 - 180; game.addChild(rotateLeftButton); rotateLeftButton.down = function () { tween(rotateLeftButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; rotateLeftButton.up = function () { tween(rotateLeftButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); easterEgg.rotate(-Math.PI / 8); }; var rotateRightButton = new Button("Rotate >", 0x9370DB); rotateRightButton.x = 1000; rotateRightButton.y = 2732 - 180; game.addChild(rotateRightButton); rotateRightButton.down = function () { tween(rotateRightButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; rotateRightButton.up = function () { tween(rotateRightButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); easterEgg.rotate(Math.PI / 8); }; var saveButton = new Button("Save", 0x32CD32); saveButton.x = 1150; saveButton.y = 2732 - 180; game.addChild(saveButton); saveButton.down = function () { tween(saveButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; saveButton.up = function () { tween(saveButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); // Save the current egg design var completedEgg = easterEgg.captureDesign(); // Add to saved eggs savedEggs.push({ x: 150 + savedEggs.length % 4 * 180, y: 2732 - 600 - Math.floor(savedEggs.length / 4) * 220, color: currentColor }); // Update storage storage.savedEggs = savedEggs; // Play save sound LK.getSound('saveSound').play(); // Add the egg to the basket display displaySavedEggs(); // Increment score LK.setScore(LK.getScore() + 1); // Clear the current egg for a new design easterEgg.clearDesigns(); }; var clearButton = new Button("Clear", 0xFF6347); clearButton.x = 1300; clearButton.y = 2732 - 180; game.addChild(clearButton); clearButton.down = function () { tween(clearButton, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; clearButton.up = function () { tween(clearButton, { scaleX: 1, scaleY: 1 }, { duration: 100 }); easterEgg.clearDesigns(); LK.getSound('clearSound').play(); }; // Create basket display var basket = LK.getAsset('basket', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 - 540 }); game.addChild(basket); // Title text var titleText = new Text2("Easter Egg Artist", { size: 100, fill: 0x8B4513 // Dark brown }); titleText.anchor.set(0.5, 0); titleText.x = 2048 / 2; titleText.y = 50; game.addChild(titleText); // Score display var scoreText = new Text2("Eggs: 0", { size: 60, fill: 0x4B0082 // Indigo }); scoreText.anchor.set(0, 0); scoreText.x = 120; scoreText.y = 120; game.addChild(scoreText); // Function to display saved eggs function displaySavedEggs() { // Remove any existing displayed eggs for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i].isCompletedEgg) { game.removeChild(game.children[i]); } } // Display saved eggs for (var i = 0; i < savedEggs.length; i++) { var eggData = savedEggs[i]; var displayedEgg = new CompletedEgg(eggData.color); displayedEgg.x = eggData.x; displayedEgg.y = eggData.y; displayedEgg.isCompletedEgg = true; game.addChild(displayedEgg); } } // Display any saved eggs displaySavedEggs(); // Game event handlers game.down = function (x, y) { if (y < 2732 - 350) { isPainting = true; lastX = x; lastY = y; if (currentTool === 'brush') { var brushStroke = new BrushStroke(currentColor, currentBrushSize); easterEgg.addDesign(x, y, brushStroke); LK.getSound('brushSound').play(); } else if (currentTool === 'star' || currentTool === 'heart') { var sticker = new Sticker(currentTool, 1.2); easterEgg.addDesign(x, y, sticker); LK.getSound('stickerSound').play(); } } }; game.move = function (x, y) { if (isPainting && currentTool === 'brush') { // Calculate distance between last point and current point var dx = x - lastX; var dy = y - lastY; var distance = Math.sqrt(dx * dx + dy * dy); // If distance is greater than half the brush size, add intermediate points if (distance > currentBrushSize / 2) { var steps = Math.ceil(distance / (currentBrushSize / 2)); for (var i = 1; i <= steps; i++) { var pointX = lastX + dx * i / steps; var pointY = lastY + dy * i / steps; var brushStroke = new BrushStroke(currentColor, currentBrushSize); easterEgg.addDesign(pointX, pointY, brushStroke); } } else { var brushStroke = new BrushStroke(currentColor, currentBrushSize); easterEgg.addDesign(x, y, brushStroke); } lastX = x; lastY = y; } }; game.up = function () { isPainting = false; }; // Update function game.update = function () { // Update score display scoreText.setText("Eggs: " + LK.getScore()); }; // Start background music LK.playMusic('easterMusic', { fade: { start: 0, end: 0.2, duration: 1000 } });
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,528 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+var storage = LK.import("@upit/storage.v1", {
+ savedEggs: []
+});
+
+/****
+* Classes
+****/
+var BrushStroke = Container.expand(function (color, size) {
+ var self = Container.call(this);
+ var stroke = self.attachAsset('brushStroke', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: size / 30,
+ scaleY: size / 30
+ });
+ stroke.tint = color;
+ return self;
+});
+var Button = Container.expand(function (label, color) {
+ var self = Container.call(this);
+ var background = self.attachAsset('buttonBg', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var text = new Text2(label, {
+ size: 30,
+ fill: 0xFFFFFF
+ });
+ text.anchor.set(0.5, 0.5);
+ self.addChild(text);
+ if (color !== undefined) {
+ background.tint = color;
+ }
+ self.down = function () {
+ tween(background, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+ };
+ self.up = function () {
+ tween(background, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ };
+ return self;
+});
+var ColorButton = Container.expand(function (color) {
+ var self = Container.call(this);
+ var button = self.attachAsset('colorButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ button.tint = color;
+ self.color = color;
+ self.down = function () {
+ tween(button, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+ };
+ self.up = function () {
+ tween(button, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ };
+ return self;
+});
+var CompletedEgg = Container.expand(function (baseColor) {
+ var self = Container.call(this);
+ var eggGraphic = self.attachAsset('completedEgg', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ eggGraphic.tint = baseColor || 0xFFFFFF;
+ // Add some random decoration to make each egg look unique
+ for (var i = 0; i < 5; i++) {
+ var glitter = self.attachAsset('glitter', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: (Math.random() - 0.5) * 80,
+ y: (Math.random() - 0.5) * 120
+ });
+ glitter.tint = 0xFFD700 + Math.floor(Math.random() * 0x555555);
+ }
+ return self;
+});
+var EasterEgg = Container.expand(function () {
+ var self = Container.call(this);
+ var eggBase = self.attachAsset('eggBase', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var designContainer = new Container();
+ self.addChild(designContainer);
+ self.addDesign = function (x, y, designElement) {
+ var localPosition = designContainer.toLocal({
+ x: x,
+ y: y
+ }, game);
+ designElement.x = localPosition.x;
+ designElement.y = localPosition.y;
+ designContainer.addChild(designElement);
+ };
+ self.clearDesigns = function () {
+ while (designContainer.children.length > 0) {
+ designContainer.removeChild(designContainer.children[0]);
+ }
+ };
+ self.rotate = function (angle) {
+ eggBase.rotation += angle;
+ designContainer.rotation += angle;
+ };
+ self.captureDesign = function () {
+ // In a real implementation, this would create a snapshot of the egg
+ // For this simplified version, we just create a new completed egg with the same tint
+ var completedEgg = new CompletedEgg(eggBase.tint);
+ return completedEgg;
+ };
+ return self;
+});
+var Sticker = Container.expand(function (type, scale) {
+ var self = Container.call(this);
+ var stickerAsset;
+ if (type === 'star') {
+ stickerAsset = self.attachAsset('stickerStar', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: scale,
+ scaleY: scale
+ });
+ } else if (type === 'heart') {
+ stickerAsset = self.attachAsset('stickerHeart', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: scale,
+ scaleY: scale
+ });
+ }
+ self.down = function () {
+ tween(stickerAsset, {
+ scaleX: scale * 0.9,
+ scaleY: scale * 0.9
+ }, {
+ duration: 100
+ });
+ };
+ self.up = function () {
+ tween(stickerAsset, {
+ scaleX: scale,
+ scaleY: scale
+ }, {
+ duration: 100
+ });
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
+ backgroundColor: 0xAFEEEE // Light turquoise background color
+});
+
+/****
+* Game Code
+****/
+// Define color palette
+var colors = [0xFF0000,
+// Red
+0xFF7F00,
+// Orange
+0xFFFF00,
+// Yellow
+0x00FF00,
+// Green
+0x0000FF,
+// Blue
+0x4B0082,
+// Indigo
+0x9400D3,
+// Violet
+0xFFFFFF,
+// White
+0x000000 // Black
+];
+// Define brush sizes
+var brushSizes = [10, 20, 30];
+// Initialize game variables
+var currentColor = colors[0];
+var currentBrushSize = brushSizes[1];
+var currentTool = 'brush';
+var isPainting = false;
+var lastX, lastY;
+var savedEggs = storage.savedEggs || [];
+// Create main egg
+var easterEgg = new EasterEgg();
+easterEgg.x = 2048 / 2;
+easterEgg.y = 2732 / 2 - 200;
+game.addChild(easterEgg);
+// Create UI components
+// Tool panel
+var toolPanel = LK.getAsset('toolPanel', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 2048 / 2,
+ y: 2732 - 180
+});
+game.addChild(toolPanel);
+// Color panel
+var colorPanel = LK.getAsset('colorPanel', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 2048 / 2,
+ y: 2732 - 320
+});
+game.addChild(colorPanel);
+// Add color buttons
+var colorButtons = [];
+for (var i = 0; i < colors.length; i++) {
+ var colorButton = new ColorButton(colors[i]);
+ colorButton.x = i * 70 + 490;
+ colorButton.y = 2732 - 320;
+ game.addChild(colorButton);
+ colorButtons.push(colorButton);
+ // Add click handler
+ (function (color) {
+ colorButton.down = function () {
+ tween(colorButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+ currentColor = color;
+ };
+ colorButton.up = function () {
+ tween(colorButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ };
+ })(colors[i]);
+}
+// Create tool buttons
+var brushButton = new Button("Brush", 0x6495ED);
+brushButton.x = 400;
+brushButton.y = 2732 - 180;
+game.addChild(brushButton);
+brushButton.down = function () {
+ tween(brushButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+brushButton.up = function () {
+ tween(brushButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ currentTool = 'brush';
+};
+var stickerStarButton = new Button("Star", 0xFFD700);
+stickerStarButton.x = 550;
+stickerStarButton.y = 2732 - 180;
+game.addChild(stickerStarButton);
+stickerStarButton.down = function () {
+ tween(stickerStarButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+stickerStarButton.up = function () {
+ tween(stickerStarButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ currentTool = 'star';
+};
+var stickerHeartButton = new Button("Heart", 0xFF0000);
+stickerHeartButton.x = 700;
+stickerHeartButton.y = 2732 - 180;
+game.addChild(stickerHeartButton);
+stickerHeartButton.down = function () {
+ tween(stickerHeartButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+stickerHeartButton.up = function () {
+ tween(stickerHeartButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ currentTool = 'heart';
+};
+var rotateLeftButton = new Button("< Rotate", 0x9370DB);
+rotateLeftButton.x = 850;
+rotateLeftButton.y = 2732 - 180;
+game.addChild(rotateLeftButton);
+rotateLeftButton.down = function () {
+ tween(rotateLeftButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+rotateLeftButton.up = function () {
+ tween(rotateLeftButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ easterEgg.rotate(-Math.PI / 8);
+};
+var rotateRightButton = new Button("Rotate >", 0x9370DB);
+rotateRightButton.x = 1000;
+rotateRightButton.y = 2732 - 180;
+game.addChild(rotateRightButton);
+rotateRightButton.down = function () {
+ tween(rotateRightButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+rotateRightButton.up = function () {
+ tween(rotateRightButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ easterEgg.rotate(Math.PI / 8);
+};
+var saveButton = new Button("Save", 0x32CD32);
+saveButton.x = 1150;
+saveButton.y = 2732 - 180;
+game.addChild(saveButton);
+saveButton.down = function () {
+ tween(saveButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+saveButton.up = function () {
+ tween(saveButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ // Save the current egg design
+ var completedEgg = easterEgg.captureDesign();
+ // Add to saved eggs
+ savedEggs.push({
+ x: 150 + savedEggs.length % 4 * 180,
+ y: 2732 - 600 - Math.floor(savedEggs.length / 4) * 220,
+ color: currentColor
+ });
+ // Update storage
+ storage.savedEggs = savedEggs;
+ // Play save sound
+ LK.getSound('saveSound').play();
+ // Add the egg to the basket display
+ displaySavedEggs();
+ // Increment score
+ LK.setScore(LK.getScore() + 1);
+ // Clear the current egg for a new design
+ easterEgg.clearDesigns();
+};
+var clearButton = new Button("Clear", 0xFF6347);
+clearButton.x = 1300;
+clearButton.y = 2732 - 180;
+game.addChild(clearButton);
+clearButton.down = function () {
+ tween(clearButton, {
+ scaleX: 0.9,
+ scaleY: 0.9
+ }, {
+ duration: 100
+ });
+};
+clearButton.up = function () {
+ tween(clearButton, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ easterEgg.clearDesigns();
+ LK.getSound('clearSound').play();
+};
+// Create basket display
+var basket = LK.getAsset('basket', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 2048 / 2,
+ y: 2732 - 540
+});
+game.addChild(basket);
+// Title text
+var titleText = new Text2("Easter Egg Artist", {
+ size: 100,
+ fill: 0x8B4513 // Dark brown
+});
+titleText.anchor.set(0.5, 0);
+titleText.x = 2048 / 2;
+titleText.y = 50;
+game.addChild(titleText);
+// Score display
+var scoreText = new Text2("Eggs: 0", {
+ size: 60,
+ fill: 0x4B0082 // Indigo
+});
+scoreText.anchor.set(0, 0);
+scoreText.x = 120;
+scoreText.y = 120;
+game.addChild(scoreText);
+// Function to display saved eggs
+function displaySavedEggs() {
+ // Remove any existing displayed eggs
+ for (var i = game.children.length - 1; i >= 0; i--) {
+ if (game.children[i].isCompletedEgg) {
+ game.removeChild(game.children[i]);
+ }
+ }
+ // Display saved eggs
+ for (var i = 0; i < savedEggs.length; i++) {
+ var eggData = savedEggs[i];
+ var displayedEgg = new CompletedEgg(eggData.color);
+ displayedEgg.x = eggData.x;
+ displayedEgg.y = eggData.y;
+ displayedEgg.isCompletedEgg = true;
+ game.addChild(displayedEgg);
+ }
+}
+// Display any saved eggs
+displaySavedEggs();
+// Game event handlers
+game.down = function (x, y) {
+ if (y < 2732 - 350) {
+ isPainting = true;
+ lastX = x;
+ lastY = y;
+ if (currentTool === 'brush') {
+ var brushStroke = new BrushStroke(currentColor, currentBrushSize);
+ easterEgg.addDesign(x, y, brushStroke);
+ LK.getSound('brushSound').play();
+ } else if (currentTool === 'star' || currentTool === 'heart') {
+ var sticker = new Sticker(currentTool, 1.2);
+ easterEgg.addDesign(x, y, sticker);
+ LK.getSound('stickerSound').play();
+ }
+ }
+};
+game.move = function (x, y) {
+ if (isPainting && currentTool === 'brush') {
+ // Calculate distance between last point and current point
+ var dx = x - lastX;
+ var dy = y - lastY;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ // If distance is greater than half the brush size, add intermediate points
+ if (distance > currentBrushSize / 2) {
+ var steps = Math.ceil(distance / (currentBrushSize / 2));
+ for (var i = 1; i <= steps; i++) {
+ var pointX = lastX + dx * i / steps;
+ var pointY = lastY + dy * i / steps;
+ var brushStroke = new BrushStroke(currentColor, currentBrushSize);
+ easterEgg.addDesign(pointX, pointY, brushStroke);
+ }
+ } else {
+ var brushStroke = new BrushStroke(currentColor, currentBrushSize);
+ easterEgg.addDesign(x, y, brushStroke);
+ }
+ lastX = x;
+ lastY = y;
+ }
+};
+game.up = function () {
+ isPainting = false;
+};
+// Update function
+game.update = function () {
+ // Update score display
+ scoreText.setText("Eggs: " + LK.getScore());
+};
+// Start background music
+LK.playMusic('easterMusic', {
+ fade: {
+ start: 0,
+ end: 0.2,
+ duration: 1000
+ }
});
\ No newline at end of file