Code edit (1 edits merged)
Please save this source code
User prompt
Bing's Fireworks Adventure TV
Initial prompt
Toca television (2004). The powerpuff girls have a tv to watch. Tap on the play button to make the tv come to life. It will be a movie called “Bing watches the fireworks with Bella pig”. They be Bing and flop in a dark nighttime garden scene at scene 1 meeting coco and baby Charlie scene at scene 2 meeting sula and amma scene at scene 3 meeting pando and padget scene at scene 4 meeting mama pig papa pig Bella pig and Jorge pig scene at scene 5 everyone finally arrived scene at scene 6 fireworks exploding scene at scene 7 Bing is scared scene at scene 8
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Character = Container.expand(function (assetId, startX, startY) { var self = Container.call(this); var sprite = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 1 }); self.x = startX; self.y = startY; self.alpha = 0; self.appear = function () { tween(self, { alpha: 1 }, { duration: 800, easing: tween.easeOut }); }; self.hide = function () { tween(self, { alpha: 0 }, { duration: 300 }); }; return self; }); var Firework = Container.expand(function (startX, startY) { var self = Container.call(this); var firework = self.attachAsset('firework', { anchorX: 0.5, anchorY: 0.5 }); self.x = startX; self.y = startY; self.alpha = 0; self.explode = function () { tween(self, { alpha: 1, scaleX: 3, scaleY: 3 }, { duration: 500, easing: tween.easeOut, onFinish: function onFinish() { tween(self, { alpha: 0 }, { duration: 800 }); } }); }; return self; }); var TVSet = Container.expand(function () { var self = Container.call(this); var frame = self.attachAsset('tvFrame', { anchorX: 0.5, anchorY: 0.5 }); var screen = self.attachAsset('tvScreen', { anchorX: 0.5, anchorY: 0.5 }); var garden = self.attachAsset('gardenBg', { anchorX: 0.5, anchorY: 0.5 }); garden.alpha = 0; var playBtn = self.attachAsset('playButton', { anchorX: 0.5, anchorY: 0.5 }); var playIcon = self.attachAsset('playTriangle', { anchorX: 0.5, anchorY: 0.5, x: 10 }); self.showGarden = function () { garden.alpha = 1; playBtn.alpha = 0; playIcon.alpha = 0; }; self.showPlayButton = function () { garden.alpha = 0; playBtn.alpha = 1; playIcon.alpha = 1; }; self.down = function (x, y, obj) { if (playBtn.alpha > 0) { LK.getSound('click').play(); game.nextScene(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2F1B69 }); /**** * Game Code ****/ var currentScene = 0; var maxScenes = 8; var sceneTimer = null; var fireworksActive = false; var characters = []; var fireworks = []; var sceneTexts = ["Welcome to Bing's Fireworks Adventure!", "Bing and Flop arrive in the garden...", "Coco brings baby Charlie to join them!", "Sula and Amma come to watch too!", "Pando and Padget are excited for fireworks!", "The Pig family arrives just in time!", "The fireworks begin! So beautiful!", "Bing gets scared, but friends comfort him."]; // Create TV set var tvSet = game.addChild(new TVSet()); tvSet.x = 1024; tvSet.y = 1366; // Create scene text var sceneText = new Text2(sceneTexts[0], { size: 60, fill: 0xFFFFFF }); sceneText.anchor.set(0.5, 0); LK.gui.top.addChild(sceneText); sceneText.y = 100; // Create play instruction var instructionText = new Text2("Tap the TV to continue the story!", { size: 50, fill: 0xFFD700 }); instructionText.anchor.set(0.5, 1); LK.gui.bottom.addChild(instructionText); instructionText.y = -100; function createCharacters() { characters = []; // Scene 1: Bing and Flop if (currentScene >= 1) { var bing = new Character('bing', 400, 800); var flop = new Character('flop', 550, 800); characters.push(bing, flop); } // Scene 2: Coco and Charlie if (currentScene >= 2) { var coco = new Character('coco', 700, 800); var charlie = new Character('charlie', 820, 800); characters.push(coco, charlie); } // Scene 3: Sula and Amma if (currentScene >= 3) { var sula = new Character('sula', 250, 800); var amma = new Character('amma', 130, 800); characters.push(sula, amma); } // Scene 4: Pando and Padget if (currentScene >= 4) { var pando = new Character('pando', 950, 800); var padget = new Character('padget', 1100, 800); characters.push(pando, padget); } // Scene 5: Pig family if (currentScene >= 5) { var pigMama = new Character('pigMama', 1250, 800); var pigPapa = new Character('pigPapa', 1400, 800); var pigBaby = new Character('pigBaby', 1320, 750); characters.push(pigMama, pigPapa, pigBaby); } // Add all characters to game for (var i = 0; i < characters.length; i++) { game.addChild(characters[i]); } } function createFireworks() { fireworks = []; for (var i = 0; i < 8; i++) { var fw = new Firework(300 + i * 150, 200 + Math.random() * 300); fireworks.push(fw); game.addChild(fw); } } function showScene() { // Update scene text sceneText.setText(sceneTexts[currentScene]); if (currentScene === 0) { // Show play button tvSet.showPlayButton(); return; } // Show garden background tvSet.showGarden(); // Clear existing characters for (var i = 0; i < characters.length; i++) { characters[i].destroy(); } // Create and show characters for current scene createCharacters(); // Animate characters appearing LK.setTimeout(function () { for (var i = 0; i < characters.length; i++) { characters[i].appear(); } }, 500); // Handle special scenes if (currentScene === 6) { // Start fireworks createFireworks(); fireworksActive = true; LK.setTimeout(function () { for (var i = 0; i < fireworks.length; i++) { LK.setTimeout(function (fw) { return function () { fw.explode(); LK.getSound('fireworkBoom').play(); }; }(fireworks[i]), i * 300); } }, 1000); } if (currentScene === 7) { // Bing gets scared - make him shake LK.setTimeout(function () { if (characters.length > 0) { var bing = characters[0]; for (var i = 0; i < 10; i++) { LK.setTimeout(function () { bing.x += Math.random() * 10 - 5; }, i * 100); } } }, 1000); } // Auto-advance after scene 6 and 7 if (currentScene >= 6) { LK.setTimeout(function () { if (currentScene < maxScenes - 1) { currentScene++; showScene(); } else { // End of story instructionText.setText("The End! Tap to restart the story."); tvSet.showPlayButton(); } }, 4000); } else { // Show play button for next scene LK.setTimeout(function () { tvSet.showPlayButton(); }, 2000); } } game.nextScene = function () { if (currentScene >= maxScenes - 1) { // Restart story currentScene = 0; fireworksActive = false; // Clear fireworks for (var i = 0; i < fireworks.length; i++) { fireworks[i].destroy(); } fireworks = []; // Clear characters for (var i = 0; i < characters.length; i++) { characters[i].destroy(); } characters = []; instructionText.setText("Tap the TV to continue the story!"); showScene(); } else { currentScene++; showScene(); } }; game.update = function () { // Handle fireworks animation if (fireworksActive) { if (LK.ticks % 60 === 0) { // Add sparkle stars for (var i = 0; i < 5; i++) { var star = LK.getAsset('star', { anchorX: 0.5, anchorY: 0.5, x: 200 + Math.random() * 1000, y: 100 + Math.random() * 400 }); game.addChild(star); tween(star, { alpha: 0, scaleX: 0.1, scaleY: 0.1 }, { duration: 1000, onFinish: function onFinish() { star.destroy(); } }); } } } }; // Start the story showScene();
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,309 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Character = Container.expand(function (assetId, startX, startY) {
+ var self = Container.call(this);
+ var sprite = self.attachAsset(assetId, {
+ anchorX: 0.5,
+ anchorY: 1
+ });
+ self.x = startX;
+ self.y = startY;
+ self.alpha = 0;
+ self.appear = function () {
+ tween(self, {
+ alpha: 1
+ }, {
+ duration: 800,
+ easing: tween.easeOut
+ });
+ };
+ self.hide = function () {
+ tween(self, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ };
+ return self;
+});
+var Firework = Container.expand(function (startX, startY) {
+ var self = Container.call(this);
+ var firework = self.attachAsset('firework', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.x = startX;
+ self.y = startY;
+ self.alpha = 0;
+ self.explode = function () {
+ tween(self, {
+ alpha: 1,
+ scaleX: 3,
+ scaleY: 3
+ }, {
+ duration: 500,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ tween(self, {
+ alpha: 0
+ }, {
+ duration: 800
+ });
+ }
+ });
+ };
+ return self;
+});
+var TVSet = Container.expand(function () {
+ var self = Container.call(this);
+ var frame = self.attachAsset('tvFrame', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var screen = self.attachAsset('tvScreen', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var garden = self.attachAsset('gardenBg', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ garden.alpha = 0;
+ var playBtn = self.attachAsset('playButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var playIcon = self.attachAsset('playTriangle', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 10
+ });
+ self.showGarden = function () {
+ garden.alpha = 1;
+ playBtn.alpha = 0;
+ playIcon.alpha = 0;
+ };
+ self.showPlayButton = function () {
+ garden.alpha = 0;
+ playBtn.alpha = 1;
+ playIcon.alpha = 1;
+ };
+ self.down = function (x, y, obj) {
+ if (playBtn.alpha > 0) {
+ LK.getSound('click').play();
+ game.nextScene();
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2F1B69
+});
+
+/****
+* Game Code
+****/
+var currentScene = 0;
+var maxScenes = 8;
+var sceneTimer = null;
+var fireworksActive = false;
+var characters = [];
+var fireworks = [];
+var sceneTexts = ["Welcome to Bing's Fireworks Adventure!", "Bing and Flop arrive in the garden...", "Coco brings baby Charlie to join them!", "Sula and Amma come to watch too!", "Pando and Padget are excited for fireworks!", "The Pig family arrives just in time!", "The fireworks begin! So beautiful!", "Bing gets scared, but friends comfort him."];
+// Create TV set
+var tvSet = game.addChild(new TVSet());
+tvSet.x = 1024;
+tvSet.y = 1366;
+// Create scene text
+var sceneText = new Text2(sceneTexts[0], {
+ size: 60,
+ fill: 0xFFFFFF
+});
+sceneText.anchor.set(0.5, 0);
+LK.gui.top.addChild(sceneText);
+sceneText.y = 100;
+// Create play instruction
+var instructionText = new Text2("Tap the TV to continue the story!", {
+ size: 50,
+ fill: 0xFFD700
+});
+instructionText.anchor.set(0.5, 1);
+LK.gui.bottom.addChild(instructionText);
+instructionText.y = -100;
+function createCharacters() {
+ characters = [];
+ // Scene 1: Bing and Flop
+ if (currentScene >= 1) {
+ var bing = new Character('bing', 400, 800);
+ var flop = new Character('flop', 550, 800);
+ characters.push(bing, flop);
+ }
+ // Scene 2: Coco and Charlie
+ if (currentScene >= 2) {
+ var coco = new Character('coco', 700, 800);
+ var charlie = new Character('charlie', 820, 800);
+ characters.push(coco, charlie);
+ }
+ // Scene 3: Sula and Amma
+ if (currentScene >= 3) {
+ var sula = new Character('sula', 250, 800);
+ var amma = new Character('amma', 130, 800);
+ characters.push(sula, amma);
+ }
+ // Scene 4: Pando and Padget
+ if (currentScene >= 4) {
+ var pando = new Character('pando', 950, 800);
+ var padget = new Character('padget', 1100, 800);
+ characters.push(pando, padget);
+ }
+ // Scene 5: Pig family
+ if (currentScene >= 5) {
+ var pigMama = new Character('pigMama', 1250, 800);
+ var pigPapa = new Character('pigPapa', 1400, 800);
+ var pigBaby = new Character('pigBaby', 1320, 750);
+ characters.push(pigMama, pigPapa, pigBaby);
+ }
+ // Add all characters to game
+ for (var i = 0; i < characters.length; i++) {
+ game.addChild(characters[i]);
+ }
+}
+function createFireworks() {
+ fireworks = [];
+ for (var i = 0; i < 8; i++) {
+ var fw = new Firework(300 + i * 150, 200 + Math.random() * 300);
+ fireworks.push(fw);
+ game.addChild(fw);
+ }
+}
+function showScene() {
+ // Update scene text
+ sceneText.setText(sceneTexts[currentScene]);
+ if (currentScene === 0) {
+ // Show play button
+ tvSet.showPlayButton();
+ return;
+ }
+ // Show garden background
+ tvSet.showGarden();
+ // Clear existing characters
+ for (var i = 0; i < characters.length; i++) {
+ characters[i].destroy();
+ }
+ // Create and show characters for current scene
+ createCharacters();
+ // Animate characters appearing
+ LK.setTimeout(function () {
+ for (var i = 0; i < characters.length; i++) {
+ characters[i].appear();
+ }
+ }, 500);
+ // Handle special scenes
+ if (currentScene === 6) {
+ // Start fireworks
+ createFireworks();
+ fireworksActive = true;
+ LK.setTimeout(function () {
+ for (var i = 0; i < fireworks.length; i++) {
+ LK.setTimeout(function (fw) {
+ return function () {
+ fw.explode();
+ LK.getSound('fireworkBoom').play();
+ };
+ }(fireworks[i]), i * 300);
+ }
+ }, 1000);
+ }
+ if (currentScene === 7) {
+ // Bing gets scared - make him shake
+ LK.setTimeout(function () {
+ if (characters.length > 0) {
+ var bing = characters[0];
+ for (var i = 0; i < 10; i++) {
+ LK.setTimeout(function () {
+ bing.x += Math.random() * 10 - 5;
+ }, i * 100);
+ }
+ }
+ }, 1000);
+ }
+ // Auto-advance after scene 6 and 7
+ if (currentScene >= 6) {
+ LK.setTimeout(function () {
+ if (currentScene < maxScenes - 1) {
+ currentScene++;
+ showScene();
+ } else {
+ // End of story
+ instructionText.setText("The End! Tap to restart the story.");
+ tvSet.showPlayButton();
+ }
+ }, 4000);
+ } else {
+ // Show play button for next scene
+ LK.setTimeout(function () {
+ tvSet.showPlayButton();
+ }, 2000);
+ }
+}
+game.nextScene = function () {
+ if (currentScene >= maxScenes - 1) {
+ // Restart story
+ currentScene = 0;
+ fireworksActive = false;
+ // Clear fireworks
+ for (var i = 0; i < fireworks.length; i++) {
+ fireworks[i].destroy();
+ }
+ fireworks = [];
+ // Clear characters
+ for (var i = 0; i < characters.length; i++) {
+ characters[i].destroy();
+ }
+ characters = [];
+ instructionText.setText("Tap the TV to continue the story!");
+ showScene();
+ } else {
+ currentScene++;
+ showScene();
+ }
+};
+game.update = function () {
+ // Handle fireworks animation
+ if (fireworksActive) {
+ if (LK.ticks % 60 === 0) {
+ // Add sparkle stars
+ for (var i = 0; i < 5; i++) {
+ var star = LK.getAsset('star', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 200 + Math.random() * 1000,
+ y: 100 + Math.random() * 400
+ });
+ game.addChild(star);
+ tween(star, {
+ alpha: 0,
+ scaleX: 0.1,
+ scaleY: 0.1
+ }, {
+ duration: 1000,
+ onFinish: function onFinish() {
+ star.destroy();
+ }
+ });
+ }
+ }
+ }
+};
+// Start the story
+showScene();
\ No newline at end of file