/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Balloon = Container.expand(function () { var self = Container.call(this); var balloonGraphics = self.attachAsset('balloon', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -2; self.isCaught = false; self.update = function () { if (!self.isCaught) { self.y += self.speed; if (self.y < -200) { self.y = 2732 + 200; } } }; self["catch"] = function () { self.isCaught = true; tween(self, { y: 2400 }, { duration: 1000, easing: tween.easeOut, onFinish: function onFinish() { self.isCaught = false; self.speed *= 1.1; } }); }; return self; }); var CallButton = Container.expand(function (color, action) { var self = Container.call(this); var buttonGraphics = self.attachAsset(color + 'Button', { anchorX: 0.5, anchorY: 0.5 }); self.down = function () { action(); tween(self, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; self.up = function () { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; return self; }); var PowerpuffGirl = Container.expand(function (color, xPos) { var self = Container.call(this); var girlGraphics = self.attachAsset(color, { anchorX: 0.5, anchorY: 0.5 }); self.isFlying = false; self.targetY = 0; self.down = function () { if (!self.isFlying && balloon) { self.isFlying = true; self.targetY = balloon.y; tween(self, { y: self.targetY }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { if (self.intersects(balloon)) { balloon["catch"](); LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); } tween(self, { y: 2200 }, { duration: 600, easing: tween.easeIn, onFinish: function onFinish() { self.isFlying = false; } }); } }); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ var balloon; var moon; var greenButton; var redButton; var blossom; var bubbles; var buttercup; var girlsActive = false; var scoreTxt; moon = LK.getAsset('moon', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 300 }); game.addChild(moon); balloon = new Balloon(); balloon.x = 1024; balloon.y = 2400; game.addChild(balloon); function showPowerpuffGirls() { if (girlsActive) return; girlsActive = true; blossom = new PowerpuffGirl('blossom'); blossom.x = 624; blossom.y = 2200; game.addChild(blossom); bubbles = new PowerpuffGirl('bubbles'); bubbles.x = 1024; bubbles.y = 2200; game.addChild(bubbles); buttercup = new PowerpuffGirl('buttercup'); buttercup.x = 1424; buttercup.y = 2200; game.addChild(buttercup); tween(blossom, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.bounceOut }); tween(bubbles, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.bounceOut }); tween(buttercup, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.bounceOut }); } function hidePowerpuffGirls() { if (!girlsActive) return; girlsActive = false; if (blossom) { blossom.destroy(); blossom = null; } if (bubbles) { bubbles.destroy(); bubbles = null; } if (buttercup) { buttercup.destroy(); buttercup = null; } } greenButton = new CallButton('green', showPowerpuffGirls); greenButton.x = 512; greenButton.y = 2532; game.addChild(greenButton); redButton = new CallButton('red', hidePowerpuffGirls); redButton.x = 1536; redButton.y = 2532; game.addChild(redButton); scoreTxt = new Text2('0', { size: 120, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); game.update = function () {};
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Balloon = Container.expand(function () {
var self = Container.call(this);
var balloonGraphics = self.attachAsset('balloon', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -2;
self.isCaught = false;
self.update = function () {
if (!self.isCaught) {
self.y += self.speed;
if (self.y < -200) {
self.y = 2732 + 200;
}
}
};
self["catch"] = function () {
self.isCaught = true;
tween(self, {
y: 2400
}, {
duration: 1000,
easing: tween.easeOut,
onFinish: function onFinish() {
self.isCaught = false;
self.speed *= 1.1;
}
});
};
return self;
});
var CallButton = Container.expand(function (color, action) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset(color + 'Button', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function () {
action();
tween(self, {
scaleX: 0.9,
scaleY: 0.9
}, {
duration: 100
});
};
self.up = function () {
tween(self, {
scaleX: 1,
scaleY: 1
}, {
duration: 100
});
};
return self;
});
var PowerpuffGirl = Container.expand(function (color, xPos) {
var self = Container.call(this);
var girlGraphics = self.attachAsset(color, {
anchorX: 0.5,
anchorY: 0.5
});
self.isFlying = false;
self.targetY = 0;
self.down = function () {
if (!self.isFlying && balloon) {
self.isFlying = true;
self.targetY = balloon.y;
tween(self, {
y: self.targetY
}, {
duration: 800,
easing: tween.easeInOut,
onFinish: function onFinish() {
if (self.intersects(balloon)) {
balloon["catch"]();
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
}
tween(self, {
y: 2200
}, {
duration: 600,
easing: tween.easeIn,
onFinish: function onFinish() {
self.isFlying = false;
}
});
}
});
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
var balloon;
var moon;
var greenButton;
var redButton;
var blossom;
var bubbles;
var buttercup;
var girlsActive = false;
var scoreTxt;
moon = LK.getAsset('moon', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 300
});
game.addChild(moon);
balloon = new Balloon();
balloon.x = 1024;
balloon.y = 2400;
game.addChild(balloon);
function showPowerpuffGirls() {
if (girlsActive) return;
girlsActive = true;
blossom = new PowerpuffGirl('blossom');
blossom.x = 624;
blossom.y = 2200;
game.addChild(blossom);
bubbles = new PowerpuffGirl('bubbles');
bubbles.x = 1024;
bubbles.y = 2200;
game.addChild(bubbles);
buttercup = new PowerpuffGirl('buttercup');
buttercup.x = 1424;
buttercup.y = 2200;
game.addChild(buttercup);
tween(blossom, {
scaleX: 1,
scaleY: 1
}, {
duration: 300,
easing: tween.bounceOut
});
tween(bubbles, {
scaleX: 1,
scaleY: 1
}, {
duration: 300,
easing: tween.bounceOut
});
tween(buttercup, {
scaleX: 1,
scaleY: 1
}, {
duration: 300,
easing: tween.bounceOut
});
}
function hidePowerpuffGirls() {
if (!girlsActive) return;
girlsActive = false;
if (blossom) {
blossom.destroy();
blossom = null;
}
if (bubbles) {
bubbles.destroy();
bubbles = null;
}
if (buttercup) {
buttercup.destroy();
buttercup = null;
}
}
greenButton = new CallButton('green', showPowerpuffGirls);
greenButton.x = 512;
greenButton.y = 2532;
game.addChild(greenButton);
redButton = new CallButton('red', hidePowerpuffGirls);
redButton.x = 1536;
redButton.y = 2532;
game.addChild(redButton);
scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
game.update = function () {};