/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var SoundButton = Container.expand(function (text, soundId, color) {
var self = Container.call(this);
// Create button background shape
var buttonWidth = 480;
var buttonHeight = 120;
// Create background rectangle using a simple colored shape
var background = LK.getAsset('box', {
width: buttonWidth,
height: buttonHeight,
color: color,
shape: 'box'
});
background.anchor.set(0.5, 0.5);
self.addChild(background);
// Create text label
var label = new Text2(text, {
size: 48,
fill: 0xFFFFFF,
wordWrap: true,
wordWrapWidth: buttonWidth - 40
});
label.anchor.set(0.5, 0.5);
self.addChild(label);
// Store sound reference
self.soundId = soundId;
self.originalScale = 1;
// Button press animation and sound
self.down = function (x, y, obj) {
// Scale down animation
tween(self, {
scaleX: 0.9,
scaleY: 0.9
}, {
duration: 100
});
// Play sound
LK.getSound(self.soundId).play();
// Flash effect
tween(background, {
tint: 0xffffff
}, {
duration: 150,
onFinish: function onFinish() {
tween(background, {
tint: color
}, {
duration: 150
});
}
});
};
self.up = function (x, y, obj) {
// Scale back to normal
tween(self, {
scaleX: self.originalScale,
scaleY: self.originalScale
}, {
duration: 100
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xff69b4
});
/****
* Game Code
****/
// Set a vibrant pink background
game.setBackgroundColor(0xff1493);
// Create title text
var titleText = new Text2("Blossom's Sound Adventure", {
size: 72,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
titleText.x = 2048 / 2;
titleText.y = 100;
game.addChild(titleText);
// Create subtitle
var subtitleText = new Text2("Tap the buttons to hear Blossom sounds!", {
size: 36,
fill: 0xFFFF99
});
subtitleText.anchor.set(0.5, 0);
subtitleText.x = 2048 / 2;
subtitleText.y = 200;
game.addChild(subtitleText);
// Array to store all buttons
var soundButtons = [];
// Button data with colors and positions
var buttonData = [{
text: "Child Blossom Gasp",
soundId: "childBlossomGasp",
color: 0xff6b9d,
x: 2048 / 2,
y: 400
}, {
text: "Blossom Snoring",
soundId: "blossomSnoring",
color: 0x9d6bff,
x: 2048 / 2,
y: 580
}, {
text: "Pretend Snow",
soundId: "pretendSnow",
color: 0x6b9dff,
x: 2048 / 2,
y: 760
}, {
text: "Snowstorm",
soundId: "snowstorm",
color: 0x6bffff,
x: 2048 / 2,
y: 940
}, {
text: "Child Blossom Gasp 2",
soundId: "childBlossomGasp2",
color: 0xff9d6b,
x: 2048 / 2,
y: 1120
}];
// Create sound buttons
for (var i = 0; i < buttonData.length; i++) {
var data = buttonData[i];
var button = new SoundButton(data.text, data.soundId, data.color);
button.x = data.x;
button.y = data.y;
soundButtons.push(button);
game.addChild(button);
}
// Add decorative elements
var decorativeText = new Text2("๐ธ Interactive Sound Book ๐ธ", {
size: 48,
fill: 0xFFFF99
});
decorativeText.anchor.set(0.5, 0);
decorativeText.x = 2048 / 2;
decorativeText.y = 1400;
game.addChild(decorativeText);
// Game update loop (minimal for this type of game)
game.update = function () {
// No continuous updates needed for a sound book game
// All interactions are handled by button events
}; /****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var SoundButton = Container.expand(function (text, soundId, color) {
var self = Container.call(this);
// Create button background shape
var buttonWidth = 480;
var buttonHeight = 120;
// Create background rectangle using a simple colored shape
var background = LK.getAsset('box', {
width: buttonWidth,
height: buttonHeight,
color: color,
shape: 'box'
});
background.anchor.set(0.5, 0.5);
self.addChild(background);
// Create text label
var label = new Text2(text, {
size: 48,
fill: 0xFFFFFF,
wordWrap: true,
wordWrapWidth: buttonWidth - 40
});
label.anchor.set(0.5, 0.5);
self.addChild(label);
// Store sound reference
self.soundId = soundId;
self.originalScale = 1;
// Button press animation and sound
self.down = function (x, y, obj) {
// Scale down animation
tween(self, {
scaleX: 0.9,
scaleY: 0.9
}, {
duration: 100
});
// Play sound
LK.getSound(self.soundId).play();
// Flash effect
tween(background, {
tint: 0xffffff
}, {
duration: 150,
onFinish: function onFinish() {
tween(background, {
tint: color
}, {
duration: 150
});
}
});
};
self.up = function (x, y, obj) {
// Scale back to normal
tween(self, {
scaleX: self.originalScale,
scaleY: self.originalScale
}, {
duration: 100
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xff69b4
});
/****
* Game Code
****/
// Set a vibrant pink background
game.setBackgroundColor(0xff1493);
// Create title text
var titleText = new Text2("Blossom's Sound Adventure", {
size: 72,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
titleText.x = 2048 / 2;
titleText.y = 100;
game.addChild(titleText);
// Create subtitle
var subtitleText = new Text2("Tap the buttons to hear Blossom sounds!", {
size: 36,
fill: 0xFFFF99
});
subtitleText.anchor.set(0.5, 0);
subtitleText.x = 2048 / 2;
subtitleText.y = 200;
game.addChild(subtitleText);
// Array to store all buttons
var soundButtons = [];
// Button data with colors and positions
var buttonData = [{
text: "Child Blossom Gasp",
soundId: "childBlossomGasp",
color: 0xff6b9d,
x: 2048 / 2,
y: 400
}, {
text: "Blossom Snoring",
soundId: "blossomSnoring",
color: 0x9d6bff,
x: 2048 / 2,
y: 580
}, {
text: "Pretend Snow",
soundId: "pretendSnow",
color: 0x6b9dff,
x: 2048 / 2,
y: 760
}, {
text: "Snowstorm",
soundId: "snowstorm",
color: 0x6bffff,
x: 2048 / 2,
y: 940
}, {
text: "Child Blossom Gasp 2",
soundId: "childBlossomGasp2",
color: 0xff9d6b,
x: 2048 / 2,
y: 1120
}];
// Create sound buttons
for (var i = 0; i < buttonData.length; i++) {
var data = buttonData[i];
var button = new SoundButton(data.text, data.soundId, data.color);
button.x = data.x;
button.y = data.y;
soundButtons.push(button);
game.addChild(button);
}
// Add decorative elements
var decorativeText = new Text2("๐ธ Interactive Sound Book ๐ธ", {
size: 48,
fill: 0xFFFF99
});
decorativeText.anchor.set(0.5, 0);
decorativeText.x = 2048 / 2;
decorativeText.y = 1400;
game.addChild(decorativeText);
// Game update loop (minimal for this type of game)
game.update = function () {
// No continuous updates needed for a sound book game
// All interactions are handled by button events
};