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