Code edit (1 edits merged)
Please save this source code
User prompt
Powerpuff Girls: Bing's Halloween Adventure
Initial prompt
Toca show (2001). The powerpuff girls have a tv to watch. Tap on the green play or continue or again button to make the tv come to life or continue the story or watch a story again. It will be a story movie called “Bing bunny: Halloween Bing”. They be sula being lost with her torch lamp scene at scene 1, pando the ghost scene at scene 2, it’s only pando scene at scene 3, coco the vampire in the bushes scene at scene 4, it’s only coco scene at scene 5, Bing the witch scene at scene 6, Bing witch making a potion from the cauldron in the kitchen scene at scene 7, CANDY falling from the cauldron scene at scene 8 for end
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Scene = Container.expand(function (sceneNumber) { var self = Container.call(this); self.sceneNumber = sceneNumber; self.isPlaying = false; self.createScene = function () { switch (self.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; case 7: self.createScene7(); break; case 8: self.createScene8(); break; } }; self.createScene1 = function () { var sula = self.attachAsset('sula', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1600 }); var torch = self.attachAsset('torchLamp', { anchorX: 0.5, anchorY: 0.5, x: 1100, y: 1450 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Sula walking animation tween(sula, { x: 800, y: 1500 }, { duration: 2000, easing: tween.easeInOut }); tween(torch, { x: 880, y: 1350 }, { duration: 2000, easing: tween.easeInOut }); // Torch flickering var _flickerTorch = function flickerTorch() { tween(torch, { alpha: 0.5 }, { duration: 300, onFinish: function onFinish() { tween(torch, { alpha: 1 }, { duration: 300, onFinish: _flickerTorch }); } }); }; _flickerTorch(); }; }; self.createScene2 = function () { var pando = self.attachAsset('pando', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1600, alpha: 0.8 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Ghost appearing animation tween(pando, { alpha: 0.3 }, { duration: 1000, onFinish: function onFinish() { tween(pando, { alpha: 0.8 }, { duration: 1000 }); } }); // Floating motion var _floatUp = function floatUp() { tween(pando, { y: 1550 }, { duration: 1500, easing: tween.easeInOut, onFinish: function onFinish() { tween(pando, { y: 1650 }, { duration: 1500, easing: tween.easeInOut, onFinish: _floatUp }); } }); }; _floatUp(); }; }; self.createScene3 = function () { var pando = self.attachAsset('pando', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1400, alpha: 0.8, scaleX: 1.3, scaleY: 1.3 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Ghost spotlight scene tween(pando, { scaleX: 1.5, scaleY: 1.5 }, { duration: 1000, easing: tween.easeOut }); tween(pando, { alpha: 0.5 }, { duration: 800, onFinish: function onFinish() { tween(pando, { alpha: 0.9 }, { duration: 800 }); } }); }; }; self.createScene4 = function () { var bush = self.attachAsset('bush', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1700 }); var coco = self.attachAsset('coco', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1650, alpha: 0.3 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Coco hiding and peeking tween(coco, { alpha: 0.8 }, { duration: 1500, onFinish: function onFinish() { tween(coco, { alpha: 0.2 }, { duration: 1000, onFinish: function onFinish() { tween(coco, { alpha: 0.8 }, { duration: 1000 }); } }); } }); }; }; self.createScene5 = function () { var coco = self.attachAsset('coco', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1400, scaleX: 1.4, scaleY: 1.4 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Vampire spotlight scene tween(coco, { scaleX: 1.6, scaleY: 1.6 }, { duration: 1200, easing: tween.bounceOut }); // Vampire cape flutter var _flutter = function flutter() { tween(coco, { scaleX: 1.7 }, { duration: 400, onFinish: function onFinish() { tween(coco, { scaleX: 1.5 }, { duration: 400, onFinish: _flutter }); } }); }; _flutter(); }; }; self.createScene6 = function () { var bing = self.attachAsset('bing', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1600 }); var hat = self.attachAsset('witchHat', { anchorX: 0.5, anchorY: 1, x: 1024, y: 1450 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Bing the witch introduction tween(bing, { scaleX: 1.2, scaleY: 1.2 }, { duration: 1000, easing: tween.bounceOut }); tween(hat, { rotation: 0.2 }, { duration: 800, onFinish: function onFinish() { tween(hat, { rotation: -0.2 }, { duration: 800, onFinish: function onFinish() { tween(hat, { rotation: 0 }, { duration: 400 }); } }); } }); }; }; self.createScene7 = function () { var cauldron = self.attachAsset('cauldron', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1700 }); var potion = self.attachAsset('potion', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1650, alpha: 0.7 }); var bing = self.attachAsset('bing', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1400, scaleX: 0.8, scaleY: 0.8 }); var hat = self.attachAsset('witchHat', { anchorX: 0.5, anchorY: 1, x: 1024, y: 1280 }); self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; // Brewing animation var _brew = function brew() { tween(potion, { alpha: 0.3 }, { duration: 600, onFinish: function onFinish() { tween(potion, { alpha: 0.9 }, { duration: 600, onFinish: _brew }); } }); }; _brew(); // Stirring motion tween(bing, { x: 1050 }, { duration: 800, onFinish: function onFinish() { tween(bing, { x: 1024 }, { duration: 800 }); } }); }; }; self.createScene8 = function () { var cauldron = self.attachAsset('cauldron', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1700 }); self.candies = []; self.playAnimation = function () { if (self.isPlaying) return; self.isPlaying = true; LK.getSound('candyFall').play(); // Create falling candy for (var i = 0; i < 20; i++) { var candy = self.attachAsset('candy', { anchorX: 0.5, anchorY: 0.5, x: 800 + Math.random() * 500, y: 800 + Math.random() * 200 }); self.candies.push(candy); // Animate candy falling tween(candy, { y: candy.y + 800 + Math.random() * 400 }, { duration: 2000 + Math.random() * 1000, easing: tween.easeIn }); // Rotate candy tween(candy, { rotation: Math.PI * 2 }, { duration: 1000 + Math.random() * 500 }); } }; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ // Bing characters // Character shapes var currentScene = 0; var scenes = []; var isWatchingTV = true; var showingStory = false; // Create TV setup var tvFrame = game.attachAsset('tvFrame', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1200 }); var tvScreen = game.attachAsset('tvScreen', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1200 }); // Create Powerpuff Girls watching TV var girl1 = game.attachAsset('powerpuffGirl1', { anchorX: 0.5, anchorY: 0.5, x: 700, y: 2100 }); var girl2 = game.attachAsset('powerpuffGirl2', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 2150 }); var girl3 = game.attachAsset('powerpuffGirl3', { anchorX: 0.5, anchorY: 0.5, x: 1350, y: 2100 }); // Create play button var playButton = game.attachAsset('playButton', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1200 }); // Create continue and again buttons (initially hidden) var continueButton = game.attachAsset('continueButton', { anchorX: 0.5, anchorY: 0.5, x: 900, y: 2400, alpha: 0 }); var againButton = game.attachAsset('againButton', { anchorX: 0.5, anchorY: 0.5, x: 1150, y: 2400, alpha: 0 }); // Button text var playText = new Text2('▶', { size: 80, fill: 0xFFFFFF }); playText.anchor.set(0.5, 0.5); playText.x = 1024; playText.y = 1200; game.addChild(playText); var continueText = new Text2('Continue', { size: 40, fill: 0xFFFFFF }); continueText.anchor.set(0.5, 0.5); continueText.x = 900; continueText.y = 2400; continueText.alpha = 0; game.addChild(continueText); var againText = new Text2('Again', { size: 40, fill: 0xFFFFFF }); againText.anchor.set(0.5, 0.5); againText.x = 1150; againText.y = 2400; againText.alpha = 0; game.addChild(againText); // Scene title var sceneTitle = new Text2('', { size: 60, fill: 0xFFFFFF }); sceneTitle.anchor.set(0.5, 0.5); sceneTitle.x = 1024; sceneTitle.y = 500; sceneTitle.alpha = 0; game.addChild(sceneTitle); // Initialize all scenes for (var i = 1; i <= 8; i++) { scenes.push(new Scene(i)); } var sceneTitles = ["Scene 1: Sula's Lost Adventure", "Scene 2: Pando the Ghost Appears", "Scene 3: Pando's Ghostly Spotlight", "Scene 4: Coco Hides in the Bushes", "Scene 5: Coco's Vampire Reveal", "Scene 6: Meet Bing the Witch", "Scene 7: Brewing the Magic Potion", "Scene 8: Magical Candy Rain!"]; function startScene(sceneNumber) { // Clear previous scene if (currentScene > 0) { game.removeChild(scenes[currentScene - 1]); } currentScene = sceneNumber; showingStory = true; // Hide TV elements tvFrame.alpha = 0; tvScreen.alpha = 0; playButton.alpha = 0; playText.alpha = 0; girl1.alpha = 0; girl2.alpha = 0; girl3.alpha = 0; // Show scene title sceneTitle.setText(sceneTitles[sceneNumber - 1]); sceneTitle.alpha = 1; // Add and create current scene var scene = scenes[sceneNumber - 1]; game.addChild(scene); scene.createScene(); // Start scene animation after brief delay LK.setTimeout(function () { scene.playAnimation(); LK.getSound('sceneTransition').play(); }, 500); // Show control buttons after scene plays LK.setTimeout(function () { showControlButtons(); }, 3000); } function showControlButtons() { if (currentScene < 8) { // Show continue button tween(continueButton, { alpha: 1 }, { duration: 500 }); tween(continueText, { alpha: 1 }, { duration: 500 }); } // Show again button tween(againButton, { alpha: 1 }, { duration: 500 }); tween(againText, { alpha: 1 }, { duration: 500 }); } function hideControlButtons() { tween(continueButton, { alpha: 0 }, { duration: 300 }); tween(continueText, { alpha: 0 }, { duration: 300 }); tween(againButton, { alpha: 0 }, { duration: 300 }); tween(againText, { alpha: 0 }, { duration: 300 }); tween(sceneTitle, { alpha: 0 }, { duration: 300 }); } function returnToTV() { // Hide current scene if (currentScene > 0) { game.removeChild(scenes[currentScene - 1]); } hideControlButtons(); // Show TV elements tvFrame.alpha = 1; tvScreen.alpha = 1; playButton.alpha = 1; playText.alpha = 1; girl1.alpha = 1; girl2.alpha = 1; girl3.alpha = 1; currentScene = 0; showingStory = false; isWatchingTV = true; } // Event handlers playButton.down = function (x, y, obj) { if (isWatchingTV) { LK.getSound('buttonClick').play(); isWatchingTV = false; startScene(1); } }; continueButton.down = function (x, y, obj) { if (showingStory && currentScene < 8) { LK.getSound('buttonClick').play(); hideControlButtons(); startScene(currentScene + 1); } }; againButton.down = function (x, y, obj) { if (showingStory) { LK.getSound('buttonClick').play(); if (currentScene === 8) { // Return to TV after final scene returnToTV(); } else { // Replay current scene hideControlButtons(); startScene(currentScene); } } }; // Girls watching animation var girlsWatching = function girlsWatching() { if (isWatchingTV) { tween(girl1, { y: 2080 }, { duration: 2000, easing: tween.easeInOut, onFinish: function onFinish() { tween(girl1, { y: 2100 }, { duration: 2000, easing: tween.easeInOut }); } }); tween(girl2, { y: 2130 }, { duration: 2500, easing: tween.easeInOut, onFinish: function onFinish() { tween(girl2, { y: 2150 }, { duration: 2500, easing: tween.easeInOut }); } }); tween(girl3, { y: 2080 }, { duration: 1800, easing: tween.easeInOut, onFinish: function onFinish() { tween(girl3, { y: 2100 }, { duration: 1800, easing: tween.easeInOut }); } }); } }; // Start girls watching animation girlsWatching(); // Keep girls animated LK.setInterval(function () { if (isWatchingTV) { girlsWatching(); } }, 4000);
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,694 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Scene = Container.expand(function (sceneNumber) {
+ var self = Container.call(this);
+ self.sceneNumber = sceneNumber;
+ self.isPlaying = false;
+ self.createScene = function () {
+ switch (self.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;
+ case 7:
+ self.createScene7();
+ break;
+ case 8:
+ self.createScene8();
+ break;
+ }
+ };
+ self.createScene1 = function () {
+ var sula = self.attachAsset('sula', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1600
+ });
+ var torch = self.attachAsset('torchLamp', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1100,
+ y: 1450
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Sula walking animation
+ tween(sula, {
+ x: 800,
+ y: 1500
+ }, {
+ duration: 2000,
+ easing: tween.easeInOut
+ });
+ tween(torch, {
+ x: 880,
+ y: 1350
+ }, {
+ duration: 2000,
+ easing: tween.easeInOut
+ });
+ // Torch flickering
+ var _flickerTorch = function flickerTorch() {
+ tween(torch, {
+ alpha: 0.5
+ }, {
+ duration: 300,
+ onFinish: function onFinish() {
+ tween(torch, {
+ alpha: 1
+ }, {
+ duration: 300,
+ onFinish: _flickerTorch
+ });
+ }
+ });
+ };
+ _flickerTorch();
+ };
+ };
+ self.createScene2 = function () {
+ var pando = self.attachAsset('pando', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1600,
+ alpha: 0.8
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Ghost appearing animation
+ tween(pando, {
+ alpha: 0.3
+ }, {
+ duration: 1000,
+ onFinish: function onFinish() {
+ tween(pando, {
+ alpha: 0.8
+ }, {
+ duration: 1000
+ });
+ }
+ });
+ // Floating motion
+ var _floatUp = function floatUp() {
+ tween(pando, {
+ y: 1550
+ }, {
+ duration: 1500,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(pando, {
+ y: 1650
+ }, {
+ duration: 1500,
+ easing: tween.easeInOut,
+ onFinish: _floatUp
+ });
+ }
+ });
+ };
+ _floatUp();
+ };
+ };
+ self.createScene3 = function () {
+ var pando = self.attachAsset('pando', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1400,
+ alpha: 0.8,
+ scaleX: 1.3,
+ scaleY: 1.3
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Ghost spotlight scene
+ tween(pando, {
+ scaleX: 1.5,
+ scaleY: 1.5
+ }, {
+ duration: 1000,
+ easing: tween.easeOut
+ });
+ tween(pando, {
+ alpha: 0.5
+ }, {
+ duration: 800,
+ onFinish: function onFinish() {
+ tween(pando, {
+ alpha: 0.9
+ }, {
+ duration: 800
+ });
+ }
+ });
+ };
+ };
+ self.createScene4 = function () {
+ var bush = self.attachAsset('bush', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1700
+ });
+ var coco = self.attachAsset('coco', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1650,
+ alpha: 0.3
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Coco hiding and peeking
+ tween(coco, {
+ alpha: 0.8
+ }, {
+ duration: 1500,
+ onFinish: function onFinish() {
+ tween(coco, {
+ alpha: 0.2
+ }, {
+ duration: 1000,
+ onFinish: function onFinish() {
+ tween(coco, {
+ alpha: 0.8
+ }, {
+ duration: 1000
+ });
+ }
+ });
+ }
+ });
+ };
+ };
+ self.createScene5 = function () {
+ var coco = self.attachAsset('coco', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1400,
+ scaleX: 1.4,
+ scaleY: 1.4
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Vampire spotlight scene
+ tween(coco, {
+ scaleX: 1.6,
+ scaleY: 1.6
+ }, {
+ duration: 1200,
+ easing: tween.bounceOut
+ });
+ // Vampire cape flutter
+ var _flutter = function flutter() {
+ tween(coco, {
+ scaleX: 1.7
+ }, {
+ duration: 400,
+ onFinish: function onFinish() {
+ tween(coco, {
+ scaleX: 1.5
+ }, {
+ duration: 400,
+ onFinish: _flutter
+ });
+ }
+ });
+ };
+ _flutter();
+ };
+ };
+ self.createScene6 = function () {
+ var bing = self.attachAsset('bing', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1600
+ });
+ var hat = self.attachAsset('witchHat', {
+ anchorX: 0.5,
+ anchorY: 1,
+ x: 1024,
+ y: 1450
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Bing the witch introduction
+ tween(bing, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }, {
+ duration: 1000,
+ easing: tween.bounceOut
+ });
+ tween(hat, {
+ rotation: 0.2
+ }, {
+ duration: 800,
+ onFinish: function onFinish() {
+ tween(hat, {
+ rotation: -0.2
+ }, {
+ duration: 800,
+ onFinish: function onFinish() {
+ tween(hat, {
+ rotation: 0
+ }, {
+ duration: 400
+ });
+ }
+ });
+ }
+ });
+ };
+ };
+ self.createScene7 = function () {
+ var cauldron = self.attachAsset('cauldron', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1700
+ });
+ var potion = self.attachAsset('potion', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1650,
+ alpha: 0.7
+ });
+ var bing = self.attachAsset('bing', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1400,
+ scaleX: 0.8,
+ scaleY: 0.8
+ });
+ var hat = self.attachAsset('witchHat', {
+ anchorX: 0.5,
+ anchorY: 1,
+ x: 1024,
+ y: 1280
+ });
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ // Brewing animation
+ var _brew = function brew() {
+ tween(potion, {
+ alpha: 0.3
+ }, {
+ duration: 600,
+ onFinish: function onFinish() {
+ tween(potion, {
+ alpha: 0.9
+ }, {
+ duration: 600,
+ onFinish: _brew
+ });
+ }
+ });
+ };
+ _brew();
+ // Stirring motion
+ tween(bing, {
+ x: 1050
+ }, {
+ duration: 800,
+ onFinish: function onFinish() {
+ tween(bing, {
+ x: 1024
+ }, {
+ duration: 800
+ });
+ }
+ });
+ };
+ };
+ self.createScene8 = function () {
+ var cauldron = self.attachAsset('cauldron', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1700
+ });
+ self.candies = [];
+ self.playAnimation = function () {
+ if (self.isPlaying) return;
+ self.isPlaying = true;
+ LK.getSound('candyFall').play();
+ // Create falling candy
+ for (var i = 0; i < 20; i++) {
+ var candy = self.attachAsset('candy', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 800 + Math.random() * 500,
+ y: 800 + Math.random() * 200
+ });
+ self.candies.push(candy);
+ // Animate candy falling
+ tween(candy, {
+ y: candy.y + 800 + Math.random() * 400
+ }, {
+ duration: 2000 + Math.random() * 1000,
+ easing: tween.easeIn
+ });
+ // Rotate candy
+ tween(candy, {
+ rotation: Math.PI * 2
+ }, {
+ duration: 1000 + Math.random() * 500
+ });
+ }
+ };
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87ceeb
+});
+
+/****
+* Game Code
+****/
+// Bing characters
+// Character shapes
+var currentScene = 0;
+var scenes = [];
+var isWatchingTV = true;
+var showingStory = false;
+// Create TV setup
+var tvFrame = game.attachAsset('tvFrame', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1200
+});
+var tvScreen = game.attachAsset('tvScreen', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1200
+});
+// Create Powerpuff Girls watching TV
+var girl1 = game.attachAsset('powerpuffGirl1', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 700,
+ y: 2100
+});
+var girl2 = game.attachAsset('powerpuffGirl2', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 2150
+});
+var girl3 = game.attachAsset('powerpuffGirl3', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1350,
+ y: 2100
+});
+// Create play button
+var playButton = game.attachAsset('playButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1200
+});
+// Create continue and again buttons (initially hidden)
+var continueButton = game.attachAsset('continueButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 900,
+ y: 2400,
+ alpha: 0
+});
+var againButton = game.attachAsset('againButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1150,
+ y: 2400,
+ alpha: 0
+});
+// Button text
+var playText = new Text2('▶', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+playText.anchor.set(0.5, 0.5);
+playText.x = 1024;
+playText.y = 1200;
+game.addChild(playText);
+var continueText = new Text2('Continue', {
+ size: 40,
+ fill: 0xFFFFFF
+});
+continueText.anchor.set(0.5, 0.5);
+continueText.x = 900;
+continueText.y = 2400;
+continueText.alpha = 0;
+game.addChild(continueText);
+var againText = new Text2('Again', {
+ size: 40,
+ fill: 0xFFFFFF
+});
+againText.anchor.set(0.5, 0.5);
+againText.x = 1150;
+againText.y = 2400;
+againText.alpha = 0;
+game.addChild(againText);
+// Scene title
+var sceneTitle = new Text2('', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+sceneTitle.anchor.set(0.5, 0.5);
+sceneTitle.x = 1024;
+sceneTitle.y = 500;
+sceneTitle.alpha = 0;
+game.addChild(sceneTitle);
+// Initialize all scenes
+for (var i = 1; i <= 8; i++) {
+ scenes.push(new Scene(i));
+}
+var sceneTitles = ["Scene 1: Sula's Lost Adventure", "Scene 2: Pando the Ghost Appears", "Scene 3: Pando's Ghostly Spotlight", "Scene 4: Coco Hides in the Bushes", "Scene 5: Coco's Vampire Reveal", "Scene 6: Meet Bing the Witch", "Scene 7: Brewing the Magic Potion", "Scene 8: Magical Candy Rain!"];
+function startScene(sceneNumber) {
+ // Clear previous scene
+ if (currentScene > 0) {
+ game.removeChild(scenes[currentScene - 1]);
+ }
+ currentScene = sceneNumber;
+ showingStory = true;
+ // Hide TV elements
+ tvFrame.alpha = 0;
+ tvScreen.alpha = 0;
+ playButton.alpha = 0;
+ playText.alpha = 0;
+ girl1.alpha = 0;
+ girl2.alpha = 0;
+ girl3.alpha = 0;
+ // Show scene title
+ sceneTitle.setText(sceneTitles[sceneNumber - 1]);
+ sceneTitle.alpha = 1;
+ // Add and create current scene
+ var scene = scenes[sceneNumber - 1];
+ game.addChild(scene);
+ scene.createScene();
+ // Start scene animation after brief delay
+ LK.setTimeout(function () {
+ scene.playAnimation();
+ LK.getSound('sceneTransition').play();
+ }, 500);
+ // Show control buttons after scene plays
+ LK.setTimeout(function () {
+ showControlButtons();
+ }, 3000);
+}
+function showControlButtons() {
+ if (currentScene < 8) {
+ // Show continue button
+ tween(continueButton, {
+ alpha: 1
+ }, {
+ duration: 500
+ });
+ tween(continueText, {
+ alpha: 1
+ }, {
+ duration: 500
+ });
+ }
+ // Show again button
+ tween(againButton, {
+ alpha: 1
+ }, {
+ duration: 500
+ });
+ tween(againText, {
+ alpha: 1
+ }, {
+ duration: 500
+ });
+}
+function hideControlButtons() {
+ tween(continueButton, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ tween(continueText, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ tween(againButton, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ tween(againText, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ tween(sceneTitle, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+}
+function returnToTV() {
+ // Hide current scene
+ if (currentScene > 0) {
+ game.removeChild(scenes[currentScene - 1]);
+ }
+ hideControlButtons();
+ // Show TV elements
+ tvFrame.alpha = 1;
+ tvScreen.alpha = 1;
+ playButton.alpha = 1;
+ playText.alpha = 1;
+ girl1.alpha = 1;
+ girl2.alpha = 1;
+ girl3.alpha = 1;
+ currentScene = 0;
+ showingStory = false;
+ isWatchingTV = true;
+}
+// Event handlers
+playButton.down = function (x, y, obj) {
+ if (isWatchingTV) {
+ LK.getSound('buttonClick').play();
+ isWatchingTV = false;
+ startScene(1);
+ }
+};
+continueButton.down = function (x, y, obj) {
+ if (showingStory && currentScene < 8) {
+ LK.getSound('buttonClick').play();
+ hideControlButtons();
+ startScene(currentScene + 1);
+ }
+};
+againButton.down = function (x, y, obj) {
+ if (showingStory) {
+ LK.getSound('buttonClick').play();
+ if (currentScene === 8) {
+ // Return to TV after final scene
+ returnToTV();
+ } else {
+ // Replay current scene
+ hideControlButtons();
+ startScene(currentScene);
+ }
+ }
+};
+// Girls watching animation
+var girlsWatching = function girlsWatching() {
+ if (isWatchingTV) {
+ tween(girl1, {
+ y: 2080
+ }, {
+ duration: 2000,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(girl1, {
+ y: 2100
+ }, {
+ duration: 2000,
+ easing: tween.easeInOut
+ });
+ }
+ });
+ tween(girl2, {
+ y: 2130
+ }, {
+ duration: 2500,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(girl2, {
+ y: 2150
+ }, {
+ duration: 2500,
+ easing: tween.easeInOut
+ });
+ }
+ });
+ tween(girl3, {
+ y: 2080
+ }, {
+ duration: 1800,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(girl3, {
+ y: 2100
+ }, {
+ duration: 1800,
+ easing: tween.easeInOut
+ });
+ }
+ });
+ }
+};
+// Start girls watching animation
+girlsWatching();
+// Keep girls animated
+LK.setInterval(function () {
+ if (isWatchingTV) {
+ girlsWatching();
+ }
+}, 4000);
\ No newline at end of file