/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var PowerpuffGirl = Container.expand(function (girlType) {
var self = Container.call(this);
// Store girl type for reference
self.girlType = girlType;
// Create vine
var vine = self.attachAsset('vine', {
anchorX: 0.5,
anchorY: 0
});
// Create girl character
var girl = self.attachAsset(girlType, {
anchorX: 0.5,
anchorY: 0.5
});
// Position girl at bottom of vine
girl.y = 600;
// Track swinging state
self.isSwinging = false;
self.originalRotation = 0;
// Swing method
self.swing = function () {
if (self.isSwinging) return;
self.isSwinging = true;
// Play appropriate yell sound
var soundName = girlType + 'Yell';
LK.getSound(soundName).play();
// Swing animation - rotate vine and girl together
tween(self, {
rotation: -0.5
}, {
duration: 400,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(self, {
rotation: 0.5
}, {
duration: 800,
easing: tween.easeInOut,
onFinish: function onFinish() {
tween(self, {
rotation: 0
}, {
duration: 400,
easing: tween.easeIn,
onFinish: function onFinish() {
self.isSwinging = false;
}
});
}
});
}
});
};
// Handle tap events
self.down = function (x, y, obj) {
self.swing();
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
// Set a bright sky blue background
game.setBackgroundColor(0x87ceeb);
// Create the three Powerpuff Girls on their vines
var blossom = game.addChild(new PowerpuffGirl('blossom'));
var bubbles = game.addChild(new PowerpuffGirl('bubbles'));
var buttercup = game.addChild(new PowerpuffGirl('buttercup'));
// Position the girls across the screen
blossom.x = 2048 / 4;
blossom.y = 200;
bubbles.x = 2048 / 2;
bubbles.y = 200;
buttercup.x = 2048 / 4 * 3;
buttercup.y = 200;
// Add title text
var titleText = new Text2('Tap the Powerpuff Girls!', {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
LK.gui.top.addChild(titleText);
titleText.y = 150;
// Add instruction text
var instructionText = new Text2('Tap any girl to hear her Tarzan yell!', {
size: 50,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 0);
LK.gui.bottom.addChild(instructionText);
instructionText.y = -150;
// Game update loop
game.update = function () {
// No specific update logic needed for this simple interaction game
}; /****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var PowerpuffGirl = Container.expand(function (girlType) {
var self = Container.call(this);
// Store girl type for reference
self.girlType = girlType;
// Create vine
var vine = self.attachAsset('vine', {
anchorX: 0.5,
anchorY: 0
});
// Create girl character
var girl = self.attachAsset(girlType, {
anchorX: 0.5,
anchorY: 0.5
});
// Position girl at bottom of vine
girl.y = 600;
// Track swinging state
self.isSwinging = false;
self.originalRotation = 0;
// Swing method
self.swing = function () {
if (self.isSwinging) return;
self.isSwinging = true;
// Play appropriate yell sound
var soundName = girlType + 'Yell';
LK.getSound(soundName).play();
// Swing animation - rotate vine and girl together
tween(self, {
rotation: -0.5
}, {
duration: 400,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(self, {
rotation: 0.5
}, {
duration: 800,
easing: tween.easeInOut,
onFinish: function onFinish() {
tween(self, {
rotation: 0
}, {
duration: 400,
easing: tween.easeIn,
onFinish: function onFinish() {
self.isSwinging = false;
}
});
}
});
}
});
};
// Handle tap events
self.down = function (x, y, obj) {
self.swing();
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
// Set a bright sky blue background
game.setBackgroundColor(0x87ceeb);
// Create the three Powerpuff Girls on their vines
var blossom = game.addChild(new PowerpuffGirl('blossom'));
var bubbles = game.addChild(new PowerpuffGirl('bubbles'));
var buttercup = game.addChild(new PowerpuffGirl('buttercup'));
// Position the girls across the screen
blossom.x = 2048 / 4;
blossom.y = 200;
bubbles.x = 2048 / 2;
bubbles.y = 200;
buttercup.x = 2048 / 4 * 3;
buttercup.y = 200;
// Add title text
var titleText = new Text2('Tap the Powerpuff Girls!', {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0);
LK.gui.top.addChild(titleText);
titleText.y = 150;
// Add instruction text
var instructionText = new Text2('Tap any girl to hear her Tarzan yell!', {
size: 50,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 0);
LK.gui.bottom.addChild(instructionText);
instructionText.y = -150;
// Game update loop
game.update = function () {
// No specific update logic needed for this simple interaction game
};