Code edit (1 edits merged)
Please save this source code
User prompt
Powerpuff Girls Christmas TV Theater
Initial prompt
Toca television 2 (2016). The powerpuff girls have a tv to watch. Tap on the play button to make the tv come to life. It will be a story movie about “Christmas shorts”. They be a candle 🕯️ going down while yeti sings deck the halls scene at scene 1 snow-man snowboarding scene at scene 2 snow globe with a penguin turning scene at scene 3 rabbit 🤍 making a snow angel scene at scene 3 sula shivering at snow falling from black hole scene at scene 4 squirrel 💛dancing scene at scene 5 glove turns into deer head turns into snow-man head turns into nutcracker head scene at scene 6 for end
/**** 
* Plugins
****/ 
var tween = LK.import("@upit/tween.v1");
/**** 
* Classes
****/ 
var TVInterface = Container.expand(function () {
	var self = Container.call(this);
	// TV Frame
	var tvFrame = self.attachAsset('tvFrame', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// TV Screen
	var tvScreen = self.attachAsset('tvScreen', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Play Button
	var playButton = self.attachAsset('playButton', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	var playTriangle = self.attachAsset('playTriangle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.isPlaying = false;
	self.down = function (x, y, obj) {
		if (!self.isPlaying) {
			self.startShow();
		}
	};
	self.startShow = function () {
		self.isPlaying = true;
		playButton.visible = false;
		playTriangle.visible = false;
		LK.getSound('click').play();
		// Start the Christmas show
		currentScene = 1;
		self.showScene(currentScene);
	};
	self.showScene = function (sceneNumber) {
		// Clear current scene
		self.clearScene();
		switch (sceneNumber) {
			case 1:
				self.createScene1();
				break;
			case 2:
				self.createScene2();
				break;
			case 3:
				self.createScene3();
				break;
			case 4:
				self.createScene4();
				break;
			case 5:
				self.createScene5();
				break;
			case 6:
				self.createScene6();
				break;
			default:
				self.resetToStart();
				break;
		}
	};
	self.clearScene = function () {
		// Remove all scene elements
		for (var i = self.children.length - 1; i >= 0; i--) {
			var child = self.children[i];
			if (child !== tvFrame && child !== tvScreen && child !== playButton && child !== playTriangle) {
				self.removeChild(child);
			}
		}
	};
	self.createScene1 = function () {
		// Candle countdown with yeti singing
		var candle = self.attachAsset('candle', {
			anchorX: 0.5,
			anchorY: 1,
			x: -200,
			y: 100
		});
		var flame = self.attachAsset('candleFlame', {
			anchorX: 0.5,
			anchorY: 1,
			x: -200,
			y: -100
		});
		var yeti = self.attachAsset('yeti', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 200,
			y: 0
		});
		var yetiEye1 = self.attachAsset('yetiEyes', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 170,
			y: -50
		});
		var yetiEye2 = self.attachAsset('yetiEyes', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 230,
			y: -50
		});
		// Animate candle burning down
		tween(candle, {
			scaleY: 0.3
		}, {
			duration: 3000
		});
		tween(flame, {
			alpha: 0.5
		}, {
			duration: 3000
		});
		// Animate yeti singing
		tween(yeti, {
			scaleX: 1.1,
			scaleY: 1.1
		}, {
			duration: 500,
			easing: tween.easeInOut
		});
		tween(yeti, {
			scaleX: 1.0,
			scaleY: 1.0
		}, {
			duration: 500,
			easing: tween.easeInOut
		});
		LK.setTimeout(function () {
			currentScene++;
			self.showScene(currentScene);
		}, 4000);
	};
	self.createScene2 = function () {
		// Snowman snowboarding
		var snowmanBody = self.attachAsset('snowmanBody', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: -300,
			y: 100
		});
		var snowmanHead = self.attachAsset('snowmanHead', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: -300,
			y: -50
		});
		var carrot = self.attachAsset('carrot', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: -280,
			y: -50
		});
		// Animate snowman snowboarding
		tween(snowmanBody, {
			x: 300,
			y: 200
		}, {
			duration: 3000,
			easing: tween.easeIn
		});
		tween(snowmanHead, {
			x: 300,
			y: 50
		}, {
			duration: 3000,
			easing: tween.easeIn
		});
		tween(carrot, {
			x: 320,
			y: 50
		}, {
			duration: 3000,
			easing: tween.easeIn
		});
		LK.setTimeout(function () {
			currentScene++;
			self.showScene(currentScene);
		}, 4000);
	};
	self.createScene3 = function () {
		// Snow globe with spinning penguin and rabbit
		var snowGlobe = self.attachAsset('snowGlobe', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 0,
			alpha: 0.3
		});
		var penguin = self.attachAsset('penguin', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 0
		});
		var penguinBelly = self.attachAsset('penguinBelly', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 10
		});
		var rabbit = self.attachAsset('rabbit', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: -150,
			y: 100
		});
		var rabbitEar1 = self.attachAsset('rabbitEars', {
			anchorX: 0.5,
			anchorY: 1,
			x: -170,
			y: 0
		});
		var rabbitEar2 = self.attachAsset('rabbitEars', {
			anchorX: 0.5,
			anchorY: 1,
			x: -130,
			y: 0
		});
		// Animate spinning penguin
		tween(penguin, {
			rotation: Math.PI * 4
		}, {
			duration: 3000,
			easing: tween.linear
		});
		tween(penguinBelly, {
			rotation: Math.PI * 4
		}, {
			duration: 3000,
			easing: tween.linear
		});
		// Animate rabbit making snow angels
		tween(rabbit, {
			rotation: Math.PI * 0.5
		}, {
			duration: 1000,
			easing: tween.easeInOut
		});
		tween(rabbit, {
			rotation: -Math.PI * 0.5
		}, {
			duration: 1000,
			easing: tween.easeInOut
		});
		LK.setTimeout(function () {
			currentScene++;
			self.showScene(currentScene);
		}, 4000);
	};
	self.createScene4 = function () {
		// Sula shivering in snowfall
		var sula = self.attachAsset('sula', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 50
		});
		// Create snowflakes
		for (var i = 0; i < 20; i++) {
			var snowflake = self.attachAsset('snowflake', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: Math.random() * 800 - 400,
				y: -300 - Math.random() * 200
			});
			tween(snowflake, {
				y: 400
			}, {
				duration: 2000 + Math.random() * 2000,
				easing: tween.linear
			});
		}
		// Animate Sula shivering
		var shiver = function shiver() {
			tween(sula, {
				x: 10
			}, {
				duration: 100,
				easing: tween.linear
			});
			tween(sula, {
				x: -10
			}, {
				duration: 100,
				easing: tween.linear
			});
			tween(sula, {
				x: 0
			}, {
				duration: 100,
				easing: tween.linear
			});
		};
		shiver();
		LK.setTimeout(shiver, 300);
		LK.setTimeout(shiver, 600);
		LK.setTimeout(shiver, 900);
		LK.setTimeout(function () {
			currentScene++;
			self.showScene(currentScene);
		}, 4000);
	};
	self.createScene5 = function () {
		// Dancing squirrel
		var squirrel = self.attachAsset('squirrel', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 0
		});
		var squirrelTail = self.attachAsset('squirrelTail', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: -50,
			y: -50
		});
		// Animate dancing squirrel
		tween(squirrel, {
			scaleX: 1.2,
			scaleY: 1.2
		}, {
			duration: 300,
			easing: tween.easeInOut
		});
		tween(squirrel, {
			scaleX: 1.0,
			scaleY: 1.0
		}, {
			duration: 300,
			easing: tween.easeInOut
		});
		tween(squirrelTail, {
			rotation: Math.PI * 0.3
		}, {
			duration: 200,
			easing: tween.easeInOut
		});
		tween(squirrelTail, {
			rotation: -Math.PI * 0.3
		}, {
			duration: 200,
			easing: tween.easeInOut
		});
		tween(squirrelTail, {
			rotation: 0
		}, {
			duration: 200,
			easing: tween.easeInOut
		});
		LK.setTimeout(function () {
			currentScene++;
			self.showScene(currentScene);
		}, 4000);
	};
	self.createScene6 = function () {
		// Morphing sequence
		var morphObject = self.attachAsset('glove', {
			anchorX: 0.5,
			anchorY: 0.5,
			x: 0,
			y: 0
		});
		LK.setTimeout(function () {
			self.removeChild(morphObject);
			morphObject = self.attachAsset('deerHead', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 0,
				y: 0,
				alpha: 0
			});
			var antler1 = self.attachAsset('deerAntler', {
				anchorX: 0.5,
				anchorY: 1,
				x: -60,
				y: -100,
				alpha: 0
			});
			var antler2 = self.attachAsset('deerAntler', {
				anchorX: 0.5,
				anchorY: 1,
				x: 60,
				y: -100,
				alpha: 0
			});
			tween(morphObject, {
				alpha: 1
			}, {
				duration: 500
			});
			tween(antler1, {
				alpha: 1
			}, {
				duration: 500
			});
			tween(antler2, {
				alpha: 1
			}, {
				duration: 500
			});
			LK.getSound('magic').play();
		}, 1000);
		LK.setTimeout(function () {
			self.clearScene();
			morphObject = self.attachAsset('snowmanHead', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 0,
				y: 0,
				alpha: 0
			});
			var carrot = self.attachAsset('carrot', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 20,
				y: 0,
				alpha: 0
			});
			tween(morphObject, {
				alpha: 1
			}, {
				duration: 500
			});
			tween(carrot, {
				alpha: 1
			}, {
				duration: 500
			});
			LK.getSound('magic').play();
		}, 2000);
		LK.setTimeout(function () {
			self.clearScene();
			morphObject = self.attachAsset('nutcracker', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 0,
				y: 0,
				alpha: 0
			});
			var nutcrackerHat = self.attachAsset('nutcrackerHat', {
				anchorX: 0.5,
				anchorY: 1,
				x: 0,
				y: -150,
				alpha: 0
			});
			tween(morphObject, {
				alpha: 1
			}, {
				duration: 500
			});
			tween(nutcrackerHat, {
				alpha: 1
			}, {
				duration: 500
			});
			LK.getSound('magic').play();
		}, 3000);
		LK.setTimeout(function () {
			self.resetToStart();
		}, 5000);
	};
	self.resetToStart = function () {
		self.clearScene();
		self.isPlaying = false;
		playButton.visible = true;
		playTriangle.visible = true;
		currentScene = 0;
	};
	return self;
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x001122
});
/**** 
* Game Code
****/ 
// Scene elements
// Powerpuff Girls characters
var currentScene = 0;
// Create TV interface
var tv = game.addChild(new TVInterface());
tv.x = 2048 / 2;
tv.y = 2732 / 2;
// Create Powerpuff Girls characters around the TV
var blossom = game.addChild(LK.getAsset('blossom', {
	anchorX: 0.5,
	anchorY: 0.5
}));
blossom.x = 2048 / 2 - 600;
blossom.y = 2732 / 2;
var bubbles = game.addChild(LK.getAsset('bubbles', {
	anchorX: 0.5,
	anchorY: 0.5
}));
bubbles.x = 2048 / 2 + 600;
bubbles.y = 2732 / 2;
var buttercup = game.addChild(LK.getAsset('buttercup', {
	anchorX: 0.5,
	anchorY: 0.5
}));
buttercup.x = 2048 / 2;
buttercup.y = 2732 / 2 + 400;
// Add title text
var titleText = new Text2('Powerpuff Girls Christmas TV Theater', {
	size: 120,
	fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
LK.gui.top.addChild(titleText);
titleText.y = 100;
// Play Christmas music
LK.playMusic('christmas');
// Simple floating animation for the girls
game.update = function () {
	if (LK.ticks % 120 === 0) {
		tween(blossom, {
			y: blossom.y - 20
		}, {
			duration: 1000,
			easing: tween.easeInOut
		});
		tween(blossom, {
			y: blossom.y + 20
		}, {
			duration: 1000,
			easing: tween.easeInOut
		});
	}
	if (LK.ticks % 140 === 0) {
		tween(bubbles, {
			y: bubbles.y - 15
		}, {
			duration: 1200,
			easing: tween.easeInOut
		});
		tween(bubbles, {
			y: bubbles.y + 15
		}, {
			duration: 1200,
			easing: tween.easeInOut
		});
	}
	if (LK.ticks % 160 === 0) {
		tween(buttercup, {
			y: buttercup.y - 25
		}, {
			duration: 800,
			easing: tween.easeInOut
		});
		tween(buttercup, {
			y: buttercup.y + 25
		}, {
			duration: 800,
			easing: tween.easeInOut
		});
	}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,574 @@
-/****
+/**** 
+* Plugins
+****/ 
+var tween = LK.import("@upit/tween.v1");
+
+/**** 
+* Classes
+****/ 
+var TVInterface = Container.expand(function () {
+	var self = Container.call(this);
+	// TV Frame
+	var tvFrame = self.attachAsset('tvFrame', {
+		anchorX: 0.5,
+		anchorY: 0.5
+	});
+	// TV Screen
+	var tvScreen = self.attachAsset('tvScreen', {
+		anchorX: 0.5,
+		anchorY: 0.5
+	});
+	// Play Button
+	var playButton = self.attachAsset('playButton', {
+		anchorX: 0.5,
+		anchorY: 0.5
+	});
+	var playTriangle = self.attachAsset('playTriangle', {
+		anchorX: 0.5,
+		anchorY: 0.5
+	});
+	self.isPlaying = false;
+	self.down = function (x, y, obj) {
+		if (!self.isPlaying) {
+			self.startShow();
+		}
+	};
+	self.startShow = function () {
+		self.isPlaying = true;
+		playButton.visible = false;
+		playTriangle.visible = false;
+		LK.getSound('click').play();
+		// Start the Christmas show
+		currentScene = 1;
+		self.showScene(currentScene);
+	};
+	self.showScene = function (sceneNumber) {
+		// Clear current scene
+		self.clearScene();
+		switch (sceneNumber) {
+			case 1:
+				self.createScene1();
+				break;
+			case 2:
+				self.createScene2();
+				break;
+			case 3:
+				self.createScene3();
+				break;
+			case 4:
+				self.createScene4();
+				break;
+			case 5:
+				self.createScene5();
+				break;
+			case 6:
+				self.createScene6();
+				break;
+			default:
+				self.resetToStart();
+				break;
+		}
+	};
+	self.clearScene = function () {
+		// Remove all scene elements
+		for (var i = self.children.length - 1; i >= 0; i--) {
+			var child = self.children[i];
+			if (child !== tvFrame && child !== tvScreen && child !== playButton && child !== playTriangle) {
+				self.removeChild(child);
+			}
+		}
+	};
+	self.createScene1 = function () {
+		// Candle countdown with yeti singing
+		var candle = self.attachAsset('candle', {
+			anchorX: 0.5,
+			anchorY: 1,
+			x: -200,
+			y: 100
+		});
+		var flame = self.attachAsset('candleFlame', {
+			anchorX: 0.5,
+			anchorY: 1,
+			x: -200,
+			y: -100
+		});
+		var yeti = self.attachAsset('yeti', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 200,
+			y: 0
+		});
+		var yetiEye1 = self.attachAsset('yetiEyes', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 170,
+			y: -50
+		});
+		var yetiEye2 = self.attachAsset('yetiEyes', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 230,
+			y: -50
+		});
+		// Animate candle burning down
+		tween(candle, {
+			scaleY: 0.3
+		}, {
+			duration: 3000
+		});
+		tween(flame, {
+			alpha: 0.5
+		}, {
+			duration: 3000
+		});
+		// Animate yeti singing
+		tween(yeti, {
+			scaleX: 1.1,
+			scaleY: 1.1
+		}, {
+			duration: 500,
+			easing: tween.easeInOut
+		});
+		tween(yeti, {
+			scaleX: 1.0,
+			scaleY: 1.0
+		}, {
+			duration: 500,
+			easing: tween.easeInOut
+		});
+		LK.setTimeout(function () {
+			currentScene++;
+			self.showScene(currentScene);
+		}, 4000);
+	};
+	self.createScene2 = function () {
+		// Snowman snowboarding
+		var snowmanBody = self.attachAsset('snowmanBody', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: -300,
+			y: 100
+		});
+		var snowmanHead = self.attachAsset('snowmanHead', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: -300,
+			y: -50
+		});
+		var carrot = self.attachAsset('carrot', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: -280,
+			y: -50
+		});
+		// Animate snowman snowboarding
+		tween(snowmanBody, {
+			x: 300,
+			y: 200
+		}, {
+			duration: 3000,
+			easing: tween.easeIn
+		});
+		tween(snowmanHead, {
+			x: 300,
+			y: 50
+		}, {
+			duration: 3000,
+			easing: tween.easeIn
+		});
+		tween(carrot, {
+			x: 320,
+			y: 50
+		}, {
+			duration: 3000,
+			easing: tween.easeIn
+		});
+		LK.setTimeout(function () {
+			currentScene++;
+			self.showScene(currentScene);
+		}, 4000);
+	};
+	self.createScene3 = function () {
+		// Snow globe with spinning penguin and rabbit
+		var snowGlobe = self.attachAsset('snowGlobe', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 0,
+			alpha: 0.3
+		});
+		var penguin = self.attachAsset('penguin', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 0
+		});
+		var penguinBelly = self.attachAsset('penguinBelly', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 10
+		});
+		var rabbit = self.attachAsset('rabbit', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: -150,
+			y: 100
+		});
+		var rabbitEar1 = self.attachAsset('rabbitEars', {
+			anchorX: 0.5,
+			anchorY: 1,
+			x: -170,
+			y: 0
+		});
+		var rabbitEar2 = self.attachAsset('rabbitEars', {
+			anchorX: 0.5,
+			anchorY: 1,
+			x: -130,
+			y: 0
+		});
+		// Animate spinning penguin
+		tween(penguin, {
+			rotation: Math.PI * 4
+		}, {
+			duration: 3000,
+			easing: tween.linear
+		});
+		tween(penguinBelly, {
+			rotation: Math.PI * 4
+		}, {
+			duration: 3000,
+			easing: tween.linear
+		});
+		// Animate rabbit making snow angels
+		tween(rabbit, {
+			rotation: Math.PI * 0.5
+		}, {
+			duration: 1000,
+			easing: tween.easeInOut
+		});
+		tween(rabbit, {
+			rotation: -Math.PI * 0.5
+		}, {
+			duration: 1000,
+			easing: tween.easeInOut
+		});
+		LK.setTimeout(function () {
+			currentScene++;
+			self.showScene(currentScene);
+		}, 4000);
+	};
+	self.createScene4 = function () {
+		// Sula shivering in snowfall
+		var sula = self.attachAsset('sula', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 50
+		});
+		// Create snowflakes
+		for (var i = 0; i < 20; i++) {
+			var snowflake = self.attachAsset('snowflake', {
+				anchorX: 0.5,
+				anchorY: 0.5,
+				x: Math.random() * 800 - 400,
+				y: -300 - Math.random() * 200
+			});
+			tween(snowflake, {
+				y: 400
+			}, {
+				duration: 2000 + Math.random() * 2000,
+				easing: tween.linear
+			});
+		}
+		// Animate Sula shivering
+		var shiver = function shiver() {
+			tween(sula, {
+				x: 10
+			}, {
+				duration: 100,
+				easing: tween.linear
+			});
+			tween(sula, {
+				x: -10
+			}, {
+				duration: 100,
+				easing: tween.linear
+			});
+			tween(sula, {
+				x: 0
+			}, {
+				duration: 100,
+				easing: tween.linear
+			});
+		};
+		shiver();
+		LK.setTimeout(shiver, 300);
+		LK.setTimeout(shiver, 600);
+		LK.setTimeout(shiver, 900);
+		LK.setTimeout(function () {
+			currentScene++;
+			self.showScene(currentScene);
+		}, 4000);
+	};
+	self.createScene5 = function () {
+		// Dancing squirrel
+		var squirrel = self.attachAsset('squirrel', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 0
+		});
+		var squirrelTail = self.attachAsset('squirrelTail', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: -50,
+			y: -50
+		});
+		// Animate dancing squirrel
+		tween(squirrel, {
+			scaleX: 1.2,
+			scaleY: 1.2
+		}, {
+			duration: 300,
+			easing: tween.easeInOut
+		});
+		tween(squirrel, {
+			scaleX: 1.0,
+			scaleY: 1.0
+		}, {
+			duration: 300,
+			easing: tween.easeInOut
+		});
+		tween(squirrelTail, {
+			rotation: Math.PI * 0.3
+		}, {
+			duration: 200,
+			easing: tween.easeInOut
+		});
+		tween(squirrelTail, {
+			rotation: -Math.PI * 0.3
+		}, {
+			duration: 200,
+			easing: tween.easeInOut
+		});
+		tween(squirrelTail, {
+			rotation: 0
+		}, {
+			duration: 200,
+			easing: tween.easeInOut
+		});
+		LK.setTimeout(function () {
+			currentScene++;
+			self.showScene(currentScene);
+		}, 4000);
+	};
+	self.createScene6 = function () {
+		// Morphing sequence
+		var morphObject = self.attachAsset('glove', {
+			anchorX: 0.5,
+			anchorY: 0.5,
+			x: 0,
+			y: 0
+		});
+		LK.setTimeout(function () {
+			self.removeChild(morphObject);
+			morphObject = self.attachAsset('deerHead', {
+				anchorX: 0.5,
+				anchorY: 0.5,
+				x: 0,
+				y: 0,
+				alpha: 0
+			});
+			var antler1 = self.attachAsset('deerAntler', {
+				anchorX: 0.5,
+				anchorY: 1,
+				x: -60,
+				y: -100,
+				alpha: 0
+			});
+			var antler2 = self.attachAsset('deerAntler', {
+				anchorX: 0.5,
+				anchorY: 1,
+				x: 60,
+				y: -100,
+				alpha: 0
+			});
+			tween(morphObject, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			tween(antler1, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			tween(antler2, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			LK.getSound('magic').play();
+		}, 1000);
+		LK.setTimeout(function () {
+			self.clearScene();
+			morphObject = self.attachAsset('snowmanHead', {
+				anchorX: 0.5,
+				anchorY: 0.5,
+				x: 0,
+				y: 0,
+				alpha: 0
+			});
+			var carrot = self.attachAsset('carrot', {
+				anchorX: 0.5,
+				anchorY: 0.5,
+				x: 20,
+				y: 0,
+				alpha: 0
+			});
+			tween(morphObject, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			tween(carrot, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			LK.getSound('magic').play();
+		}, 2000);
+		LK.setTimeout(function () {
+			self.clearScene();
+			morphObject = self.attachAsset('nutcracker', {
+				anchorX: 0.5,
+				anchorY: 0.5,
+				x: 0,
+				y: 0,
+				alpha: 0
+			});
+			var nutcrackerHat = self.attachAsset('nutcrackerHat', {
+				anchorX: 0.5,
+				anchorY: 1,
+				x: 0,
+				y: -150,
+				alpha: 0
+			});
+			tween(morphObject, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			tween(nutcrackerHat, {
+				alpha: 1
+			}, {
+				duration: 500
+			});
+			LK.getSound('magic').play();
+		}, 3000);
+		LK.setTimeout(function () {
+			self.resetToStart();
+		}, 5000);
+	};
+	self.resetToStart = function () {
+		self.clearScene();
+		self.isPlaying = false;
+		playButton.visible = true;
+		playTriangle.visible = true;
+		currentScene = 0;
+	};
+	return self;
+});
+
+/**** 
 * Initialize Game
-****/
+****/ 
 var game = new LK.Game({
-	backgroundColor: 0x000000
-});
\ No newline at end of file
+	backgroundColor: 0x001122
+});
+
+/**** 
+* Game Code
+****/ 
+// Scene elements
+// Powerpuff Girls characters
+var currentScene = 0;
+// Create TV interface
+var tv = game.addChild(new TVInterface());
+tv.x = 2048 / 2;
+tv.y = 2732 / 2;
+// Create Powerpuff Girls characters around the TV
+var blossom = game.addChild(LK.getAsset('blossom', {
+	anchorX: 0.5,
+	anchorY: 0.5
+}));
+blossom.x = 2048 / 2 - 600;
+blossom.y = 2732 / 2;
+var bubbles = game.addChild(LK.getAsset('bubbles', {
+	anchorX: 0.5,
+	anchorY: 0.5
+}));
+bubbles.x = 2048 / 2 + 600;
+bubbles.y = 2732 / 2;
+var buttercup = game.addChild(LK.getAsset('buttercup', {
+	anchorX: 0.5,
+	anchorY: 0.5
+}));
+buttercup.x = 2048 / 2;
+buttercup.y = 2732 / 2 + 400;
+// Add title text
+var titleText = new Text2('Powerpuff Girls Christmas TV Theater', {
+	size: 120,
+	fill: 0xFFFFFF
+});
+titleText.anchor.set(0.5, 0);
+LK.gui.top.addChild(titleText);
+titleText.y = 100;
+// Play Christmas music
+LK.playMusic('christmas');
+// Simple floating animation for the girls
+game.update = function () {
+	if (LK.ticks % 120 === 0) {
+		tween(blossom, {
+			y: blossom.y - 20
+		}, {
+			duration: 1000,
+			easing: tween.easeInOut
+		});
+		tween(blossom, {
+			y: blossom.y + 20
+		}, {
+			duration: 1000,
+			easing: tween.easeInOut
+		});
+	}
+	if (LK.ticks % 140 === 0) {
+		tween(bubbles, {
+			y: bubbles.y - 15
+		}, {
+			duration: 1200,
+			easing: tween.easeInOut
+		});
+		tween(bubbles, {
+			y: bubbles.y + 15
+		}, {
+			duration: 1200,
+			easing: tween.easeInOut
+		});
+	}
+	if (LK.ticks % 160 === 0) {
+		tween(buttercup, {
+			y: buttercup.y - 25
+		}, {
+			duration: 800,
+			easing: tween.easeInOut
+		});
+		tween(buttercup, {
+			y: buttercup.y + 25
+		}, {
+			duration: 800,
+			easing: tween.easeInOut
+		});
+	}
+};
\ No newline at end of file