Code edit (1 edits merged)
Please save this source code
User prompt
Bing Bunny: Yuk Story TV
Initial prompt
Toca story (2007). 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 called “Bing bunny: yuk”. They be round the corner not far away Bing has been chewing toys all day scene at scene 1 Bing washes his hands scene at scene 2 Bing sitting at the kitchen table scene at scene 3 Bing says “yuk! Yukky tomato eurgh.” Scene at scene 4 Bing loves kiwi 🥝 cheese 🧀 strawberries 🍓 and apple 🍎 scene at scene 5 Bing says “yuk yuk! Yukky tomato” scene at scene 6 Bing loves carrot 🥕 egg 🥚 orange 🍊 and banana 🍌 scene at scene 7 Bing throws the tomato 🍅 scene at scene 8 Bing loves snappy carrot 🥕 scene at scene 9 for end
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var PowerpuffGirl = Container.expand(function (color, name) {
var self = Container.call(this);
var body = self.attachAsset(name, {
anchorX: 0.5,
anchorY: 1
});
// Add some simple animation
self.bounce = function () {
tween(body, {
scaleY: 1.1
}, {
duration: 300,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(body, {
scaleY: 1
}, {
duration: 300,
easing: tween.easeIn
});
}
});
};
return self;
});
var StoryScene = Container.expand(function (sceneNumber) {
var self = Container.call(this);
self.sceneNumber = sceneNumber;
self.visible = false;
// Create background
var background = self.attachAsset('kitchen', {
anchorX: 0.5,
anchorY: 0.5
});
// Create Bing Bunny
var bing = self.attachAsset('bingBunny', {
anchorX: 0.5,
anchorY: 1,
x: 0,
y: 200
});
self.setupScene = function () {
// Clear previous scene elements
for (var i = self.children.length - 1; i >= 0; i--) {
var child = self.children[i];
if (child !== background && child !== bing) {
self.removeChild(child);
}
}
// Setup scene based on scene number
switch (self.sceneNumber) {
case 1:
// Bing chewing toys
self.setupChewingScene();
break;
case 2:
// Washing hands
self.setupWashingScene();
break;
case 3:
// Sitting at kitchen table
self.setupKitchenTableScene();
break;
case 4:
// Trying tomato and saying "yuk"
self.setupTomatoYukScene();
break;
case 5:
// Enjoying kiwi/cheese/strawberries/apple
self.setupEnjoyingFoodsScene();
break;
case 6:
// Rejecting tomato again
self.setupTomatoRejectScene();
break;
case 7:
// Loving carrot/egg/orange/banana
self.setupLovingFoodsScene();
break;
case 8:
// Throwing tomato
self.setupThrowingTomatoScene();
break;
case 9:
// Enjoying snappy carrot
self.setupCarrotFinalScene();
break;
}
};
self.setupChewingScene = function () {
bing.x = -200;
bing.y = 200;
};
self.setupWashingScene = function () {
bing.x = 0;
bing.y = 150;
};
self.setupKitchenTableScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
bing.x = 0;
bing.y = 100;
};
self.setupTomatoYukScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
var tomato = self.attachAsset('tomato', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 200
});
bing.x = -100;
bing.y = 100;
};
self.setupEnjoyingFoodsScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
var kiwi = self.attachAsset('kiwi', {
anchorX: 0.5,
anchorY: 0.5,
x: -200,
y: 200
});
var cheese = self.attachAsset('cheese', {
anchorX: 0.5,
anchorY: 0.5,
x: -100,
y: 200
});
var strawberry = self.attachAsset('strawberry', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 200
});
var apple = self.attachAsset('apple', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 200
});
bing.x = 0;
bing.y = 100;
};
self.setupTomatoRejectScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
var tomato = self.attachAsset('tomato', {
anchorX: 0.5,
anchorY: 0.5,
x: 150,
y: 200
});
bing.x = -150;
bing.y = 100;
};
self.setupLovingFoodsScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
var carrot = self.attachAsset('carrot', {
anchorX: 0.5,
anchorY: 0.5,
x: -200,
y: 200
});
var egg = self.attachAsset('egg', {
anchorX: 0.5,
anchorY: 0.5,
x: -100,
y: 200
});
var orange = self.attachAsset('orange', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 200
});
var banana = self.attachAsset('banana', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 200
});
bing.x = 0;
bing.y = 100;
};
self.setupThrowingTomatoScene = function () {
var trashbin = self.attachAsset('trashbin', {
anchorX: 0.5,
anchorY: 1,
x: 200,
y: 400
});
var tomato = self.attachAsset('tomato', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 100
});
bing.x = -100;
bing.y = 100;
// Animate tomato falling into trash
tween(tomato, {
x: 200,
y: 300
}, {
duration: 1000,
easing: tween.easeIn
});
};
self.setupCarrotFinalScene = function () {
var table = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 300
});
var carrot = self.attachAsset('carrot', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 200
});
bing.x = -100;
bing.y = 100;
// Make Bing bounce happily
tween(bing, {
scaleY: 1.1
}, {
duration: 500,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(bing, {
scaleY: 1
}, {
duration: 500,
easing: tween.easeIn
});
}
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
// Game state
var gameState = 'menu'; // 'menu', 'playing', 'finished'
var currentScene = 1;
var maxScenes = 9;
var sceneTimer = 0;
var sceneDisplayTime = 3000; // 3 seconds per scene
var storyScenes = [];
// Create TV setup
var tvFrame = game.addChild(LK.getAsset('tvFrame', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1100
}));
var tvScreen = game.addChild(LK.getAsset('tvScreen', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1100
}));
// Create play button
var playButton = game.addChild(LK.getAsset('playButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1100
}));
var playTriangle = game.addChild(LK.getAsset('playTriangle', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1100
}));
// Create Powerpuff Girls
var blossom = game.addChild(new PowerpuffGirl(0xffb6c1, 'ppgBlossom'));
blossom.x = 300;
blossom.y = 1800;
var bubbles = game.addChild(new PowerpuffGirl(0x87ceeb, 'ppgBubbles'));
bubbles.x = 1024;
bubbles.y = 1900;
var buttercup = game.addChild(new PowerpuffGirl(0x90ee90, 'ppgButtercup'));
buttercup.x = 1700;
buttercup.y = 1800;
// Create all story scenes
for (var i = 1; i <= maxScenes; i++) {
var scene = new StoryScene(i);
scene.x = 1024;
scene.y = 1100;
tvScreen.addChild(scene);
storyScenes.push(scene);
}
// Create title text
var titleText = new Text2('Bing Bunny: Yuk Story', {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 400;
game.addChild(titleText);
// Handle play button click
playButton.down = function (x, y, obj) {
if (gameState === 'menu') {
startStory();
} else if (gameState === 'finished') {
restartStory();
}
};
playTriangle.down = function (x, y, obj) {
if (gameState === 'menu') {
startStory();
} else if (gameState === 'finished') {
restartStory();
}
};
function startStory() {
LK.getSound('click').play();
gameState = 'playing';
currentScene = 1;
sceneTimer = 0;
// Hide play button
playButton.visible = false;
playTriangle.visible = false;
// Show first scene
showScene(currentScene);
// Make Powerpuff Girls react
blossom.bounce();
bubbles.bounce();
buttercup.bounce();
}
function restartStory() {
LK.getSound('click').play();
gameState = 'playing';
currentScene = 1;
sceneTimer = 0;
// Hide play button
playButton.visible = false;
playTriangle.visible = false;
// Show first scene
showScene(currentScene);
}
function showScene(sceneNum) {
// Hide all scenes
for (var i = 0; i < storyScenes.length; i++) {
storyScenes[i].visible = false;
}
// Show current scene
if (sceneNum >= 1 && sceneNum <= maxScenes) {
var scene = storyScenes[sceneNum - 1];
scene.visible = true;
scene.setupScene();
// Play appropriate sound
if (sceneNum === 4 || sceneNum === 6) {
LK.getSound('yuk').play();
} else if (sceneNum === 5 || sceneNum === 7 || sceneNum === 9) {
LK.getSound('yum').play();
}
// Make Powerpuff Girls react occasionally
if (sceneNum % 3 === 0) {
var randomGirl = Math.floor(Math.random() * 3);
if (randomGirl === 0) blossom.bounce();else if (randomGirl === 1) bubbles.bounce();else buttercup.bounce();
}
}
}
function nextScene() {
currentScene++;
if (currentScene > maxScenes) {
// Story finished
gameState = 'finished';
showFinishedScreen();
} else {
showScene(currentScene);
sceneTimer = 0;
}
}
function showFinishedScreen() {
// Hide all scenes
for (var i = 0; i < storyScenes.length; i++) {
storyScenes[i].visible = false;
}
// Show play button again
playButton.visible = true;
playTriangle.visible = true;
// Make all Powerpuff Girls bounce
blossom.bounce();
bubbles.bounce();
buttercup.bounce();
}
// Handle tap to advance story
tvScreen.down = function (x, y, obj) {
if (gameState === 'playing') {
nextScene();
}
};
// Game update loop
game.update = function () {
if (gameState === 'playing') {
sceneTimer += 16; // Roughly 60 FPS
// Auto-advance scene after display time
if (sceneTimer >= sceneDisplayTime) {
nextScene();
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,447 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var PowerpuffGirl = Container.expand(function (color, name) {
+ var self = Container.call(this);
+ var body = self.attachAsset(name, {
+ anchorX: 0.5,
+ anchorY: 1
+ });
+ // Add some simple animation
+ self.bounce = function () {
+ tween(body, {
+ scaleY: 1.1
+ }, {
+ duration: 300,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ tween(body, {
+ scaleY: 1
+ }, {
+ duration: 300,
+ easing: tween.easeIn
+ });
+ }
+ });
+ };
+ return self;
+});
+var StoryScene = Container.expand(function (sceneNumber) {
+ var self = Container.call(this);
+ self.sceneNumber = sceneNumber;
+ self.visible = false;
+ // Create background
+ var background = self.attachAsset('kitchen', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Create Bing Bunny
+ var bing = self.attachAsset('bingBunny', {
+ anchorX: 0.5,
+ anchorY: 1,
+ x: 0,
+ y: 200
+ });
+ self.setupScene = function () {
+ // Clear previous scene elements
+ for (var i = self.children.length - 1; i >= 0; i--) {
+ var child = self.children[i];
+ if (child !== background && child !== bing) {
+ self.removeChild(child);
+ }
+ }
+ // Setup scene based on scene number
+ switch (self.sceneNumber) {
+ case 1:
+ // Bing chewing toys
+ self.setupChewingScene();
+ break;
+ case 2:
+ // Washing hands
+ self.setupWashingScene();
+ break;
+ case 3:
+ // Sitting at kitchen table
+ self.setupKitchenTableScene();
+ break;
+ case 4:
+ // Trying tomato and saying "yuk"
+ self.setupTomatoYukScene();
+ break;
+ case 5:
+ // Enjoying kiwi/cheese/strawberries/apple
+ self.setupEnjoyingFoodsScene();
+ break;
+ case 6:
+ // Rejecting tomato again
+ self.setupTomatoRejectScene();
+ break;
+ case 7:
+ // Loving carrot/egg/orange/banana
+ self.setupLovingFoodsScene();
+ break;
+ case 8:
+ // Throwing tomato
+ self.setupThrowingTomatoScene();
+ break;
+ case 9:
+ // Enjoying snappy carrot
+ self.setupCarrotFinalScene();
+ break;
+ }
+ };
+ self.setupChewingScene = function () {
+ bing.x = -200;
+ bing.y = 200;
+ };
+ self.setupWashingScene = function () {
+ bing.x = 0;
+ bing.y = 150;
+ };
+ self.setupKitchenTableScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ bing.x = 0;
+ bing.y = 100;
+ };
+ self.setupTomatoYukScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ var tomato = self.attachAsset('tomato', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 100,
+ y: 200
+ });
+ bing.x = -100;
+ bing.y = 100;
+ };
+ self.setupEnjoyingFoodsScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ var kiwi = self.attachAsset('kiwi', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -200,
+ y: 200
+ });
+ var cheese = self.attachAsset('cheese', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -100,
+ y: 200
+ });
+ var strawberry = self.attachAsset('strawberry', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 100,
+ y: 200
+ });
+ var apple = self.attachAsset('apple', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 200,
+ y: 200
+ });
+ bing.x = 0;
+ bing.y = 100;
+ };
+ self.setupTomatoRejectScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ var tomato = self.attachAsset('tomato', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 150,
+ y: 200
+ });
+ bing.x = -150;
+ bing.y = 100;
+ };
+ self.setupLovingFoodsScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ var carrot = self.attachAsset('carrot', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -200,
+ y: 200
+ });
+ var egg = self.attachAsset('egg', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -100,
+ y: 200
+ });
+ var orange = self.attachAsset('orange', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 100,
+ y: 200
+ });
+ var banana = self.attachAsset('banana', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 200,
+ y: 200
+ });
+ bing.x = 0;
+ bing.y = 100;
+ };
+ self.setupThrowingTomatoScene = function () {
+ var trashbin = self.attachAsset('trashbin', {
+ anchorX: 0.5,
+ anchorY: 1,
+ x: 200,
+ y: 400
+ });
+ var tomato = self.attachAsset('tomato', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 100,
+ y: 100
+ });
+ bing.x = -100;
+ bing.y = 100;
+ // Animate tomato falling into trash
+ tween(tomato, {
+ x: 200,
+ y: 300
+ }, {
+ duration: 1000,
+ easing: tween.easeIn
+ });
+ };
+ self.setupCarrotFinalScene = function () {
+ var table = self.attachAsset('table', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: 300
+ });
+ var carrot = self.attachAsset('carrot', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 100,
+ y: 200
+ });
+ bing.x = -100;
+ bing.y = 100;
+ // Make Bing bounce happily
+ tween(bing, {
+ scaleY: 1.1
+ }, {
+ duration: 500,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ tween(bing, {
+ scaleY: 1
+ }, {
+ duration: 500,
+ easing: tween.easeIn
+ });
+ }
+ });
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87ceeb
+});
+
+/****
+* Game Code
+****/
+// Game state
+var gameState = 'menu'; // 'menu', 'playing', 'finished'
+var currentScene = 1;
+var maxScenes = 9;
+var sceneTimer = 0;
+var sceneDisplayTime = 3000; // 3 seconds per scene
+var storyScenes = [];
+// Create TV setup
+var tvFrame = game.addChild(LK.getAsset('tvFrame', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1100
+}));
+var tvScreen = game.addChild(LK.getAsset('tvScreen', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1100
+}));
+// Create play button
+var playButton = game.addChild(LK.getAsset('playButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1100
+}));
+var playTriangle = game.addChild(LK.getAsset('playTriangle', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 1100
+}));
+// Create Powerpuff Girls
+var blossom = game.addChild(new PowerpuffGirl(0xffb6c1, 'ppgBlossom'));
+blossom.x = 300;
+blossom.y = 1800;
+var bubbles = game.addChild(new PowerpuffGirl(0x87ceeb, 'ppgBubbles'));
+bubbles.x = 1024;
+bubbles.y = 1900;
+var buttercup = game.addChild(new PowerpuffGirl(0x90ee90, 'ppgButtercup'));
+buttercup.x = 1700;
+buttercup.y = 1800;
+// Create all story scenes
+for (var i = 1; i <= maxScenes; i++) {
+ var scene = new StoryScene(i);
+ scene.x = 1024;
+ scene.y = 1100;
+ tvScreen.addChild(scene);
+ storyScenes.push(scene);
+}
+// Create title text
+var titleText = new Text2('Bing Bunny: Yuk Story', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+titleText.anchor.set(0.5, 0.5);
+titleText.x = 1024;
+titleText.y = 400;
+game.addChild(titleText);
+// Handle play button click
+playButton.down = function (x, y, obj) {
+ if (gameState === 'menu') {
+ startStory();
+ } else if (gameState === 'finished') {
+ restartStory();
+ }
+};
+playTriangle.down = function (x, y, obj) {
+ if (gameState === 'menu') {
+ startStory();
+ } else if (gameState === 'finished') {
+ restartStory();
+ }
+};
+function startStory() {
+ LK.getSound('click').play();
+ gameState = 'playing';
+ currentScene = 1;
+ sceneTimer = 0;
+ // Hide play button
+ playButton.visible = false;
+ playTriangle.visible = false;
+ // Show first scene
+ showScene(currentScene);
+ // Make Powerpuff Girls react
+ blossom.bounce();
+ bubbles.bounce();
+ buttercup.bounce();
+}
+function restartStory() {
+ LK.getSound('click').play();
+ gameState = 'playing';
+ currentScene = 1;
+ sceneTimer = 0;
+ // Hide play button
+ playButton.visible = false;
+ playTriangle.visible = false;
+ // Show first scene
+ showScene(currentScene);
+}
+function showScene(sceneNum) {
+ // Hide all scenes
+ for (var i = 0; i < storyScenes.length; i++) {
+ storyScenes[i].visible = false;
+ }
+ // Show current scene
+ if (sceneNum >= 1 && sceneNum <= maxScenes) {
+ var scene = storyScenes[sceneNum - 1];
+ scene.visible = true;
+ scene.setupScene();
+ // Play appropriate sound
+ if (sceneNum === 4 || sceneNum === 6) {
+ LK.getSound('yuk').play();
+ } else if (sceneNum === 5 || sceneNum === 7 || sceneNum === 9) {
+ LK.getSound('yum').play();
+ }
+ // Make Powerpuff Girls react occasionally
+ if (sceneNum % 3 === 0) {
+ var randomGirl = Math.floor(Math.random() * 3);
+ if (randomGirl === 0) blossom.bounce();else if (randomGirl === 1) bubbles.bounce();else buttercup.bounce();
+ }
+ }
+}
+function nextScene() {
+ currentScene++;
+ if (currentScene > maxScenes) {
+ // Story finished
+ gameState = 'finished';
+ showFinishedScreen();
+ } else {
+ showScene(currentScene);
+ sceneTimer = 0;
+ }
+}
+function showFinishedScreen() {
+ // Hide all scenes
+ for (var i = 0; i < storyScenes.length; i++) {
+ storyScenes[i].visible = false;
+ }
+ // Show play button again
+ playButton.visible = true;
+ playTriangle.visible = true;
+ // Make all Powerpuff Girls bounce
+ blossom.bounce();
+ bubbles.bounce();
+ buttercup.bounce();
+}
+// Handle tap to advance story
+tvScreen.down = function (x, y, obj) {
+ if (gameState === 'playing') {
+ nextScene();
+ }
+};
+// Game update loop
+game.update = function () {
+ if (gameState === 'playing') {
+ sceneTimer += 16; // Roughly 60 FPS
+ // Auto-advance scene after display time
+ if (sceneTimer >= sceneDisplayTime) {
+ nextScene();
+ }
+ }
+};
\ No newline at end of file