/**** * Classes ****/ var Dot = Container.expand(function () { var self = Container.call(this); var dotShadow = self.attachAsset('dotShadow', { anchorX: 0.5, anchorY: 0.5 }); dotShadow.y += 10; dotShadow.alpha = .3; var dotBackground = self.attachAsset('dotBackground', { anchorX: 0.5, anchorY: 0.5 }); var dotGraphics = self.attachAsset('dot', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 0.02; self.circleSize = 600; self.rotate = function (centerX, centerY) { var angle = Math.atan2(self.y - centerY, self.x - centerX) + self.speed; self.x = centerX + Math.cos(angle) * self.circleSize; self.y = centerY + Math.sin(angle) * self.circleSize; }; }); var Target = Container.expand(function () { var self = Container.call(this); var targetShadow = self.attachAsset('targetShadow', { anchorX: 0.5, anchorY: 0.5 }); targetShadow.y += 10; targetShadow.alpha = .3; var targetBackground = self.attachAsset('targetBackground', { anchorX: 0.5, anchorY: 0.5 }); var targetGraphics = self.attachAsset('target', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -0.01; self.maxSpeed = 0.02; self.circleSize = 600; self.rotate = function (centerX, centerY) { var angle = Math.atan2(self.y - centerY, self.x - centerX) + self.speed; self.x = centerX + Math.cos(angle) * self.circleSize; self.y = centerY + Math.sin(angle) * self.circleSize; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var centerX = 2048 / 2; var centerY = 2732 / 2; game.setBackgroundColor(0xd9e7ea); var background = game.attachAsset('background', { anchorX: 0.5, anchorY: 0.5 }); background.x = centerX - 55; background.y = centerY + 25; var target = game.addChild(new Target()); target.x = centerX - target.circleSize; target.y = centerY; var dot = game.addChild(new Dot()); dot.x = centerX + dot.circleSize; dot.y = centerY; target.x = centerX - target.circleSize; target.y = centerY; var scoreTxt = new Text2('0', { size: 300, fill: "#3a404d", weight: 800 }); scoreTxt.anchor.set(.5, .5); LK.gui.center.addChild(scoreTxt); var score = 0; var shouldSubtractPoint = false; var ticksToUnlock = 0; LK.on('tick', function () { dot.rotate(centerX, centerY); target.rotate(centerX, centerY); if (ticksToUnlock < 0) { if (!dot.intersects(target) && shouldSubtractPoint) { score = Math.max(0, score - 1); LK.setScore(score); scoreTxt.setText(score.toString()); LK.effects.flashObject(dot, 0xff0000, 1000); LK.effects.flashObject(target, 0xff0000, 1000); } shouldSubtractPoint = dot.intersects(target); } ticksToUnlock--; }); game.on('down', function () { if (dot.intersects(target)) { score++; LK.setScore(score); scoreTxt.setText(score.toString()); dot.speed *= -1; target.maxSpeed += 0.002; target.speed = (Math.random() * target.maxSpeed + 0.01) * (target.speed > 0 ? -1 : 1); ticksToUnlock = 20; shouldSubtractPoint = false; LK.effects.flashScreen(0xffffff, 150); } else { LK.effects.flashScreen(0xff8585, 500); LK.showGameOver(); } });
/****
* Classes
****/
var Dot = Container.expand(function () {
var self = Container.call(this);
var dotShadow = self.attachAsset('dotShadow', {
anchorX: 0.5,
anchorY: 0.5
});
dotShadow.y += 10;
dotShadow.alpha = .3;
var dotBackground = self.attachAsset('dotBackground', {
anchorX: 0.5,
anchorY: 0.5
});
var dotGraphics = self.attachAsset('dot', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 0.02;
self.circleSize = 600;
self.rotate = function (centerX, centerY) {
var angle = Math.atan2(self.y - centerY, self.x - centerX) + self.speed;
self.x = centerX + Math.cos(angle) * self.circleSize;
self.y = centerY + Math.sin(angle) * self.circleSize;
};
});
var Target = Container.expand(function () {
var self = Container.call(this);
var targetShadow = self.attachAsset('targetShadow', {
anchorX: 0.5,
anchorY: 0.5
});
targetShadow.y += 10;
targetShadow.alpha = .3;
var targetBackground = self.attachAsset('targetBackground', {
anchorX: 0.5,
anchorY: 0.5
});
var targetGraphics = self.attachAsset('target', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -0.01;
self.maxSpeed = 0.02;
self.circleSize = 600;
self.rotate = function (centerX, centerY) {
var angle = Math.atan2(self.y - centerY, self.x - centerX) + self.speed;
self.x = centerX + Math.cos(angle) * self.circleSize;
self.y = centerY + Math.sin(angle) * self.circleSize;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
var centerX = 2048 / 2;
var centerY = 2732 / 2;
game.setBackgroundColor(0xd9e7ea);
var background = game.attachAsset('background', {
anchorX: 0.5,
anchorY: 0.5
});
background.x = centerX - 55;
background.y = centerY + 25;
var target = game.addChild(new Target());
target.x = centerX - target.circleSize;
target.y = centerY;
var dot = game.addChild(new Dot());
dot.x = centerX + dot.circleSize;
dot.y = centerY;
target.x = centerX - target.circleSize;
target.y = centerY;
var scoreTxt = new Text2('0', {
size: 300,
fill: "#3a404d",
weight: 800
});
scoreTxt.anchor.set(.5, .5);
LK.gui.center.addChild(scoreTxt);
var score = 0;
var shouldSubtractPoint = false;
var ticksToUnlock = 0;
LK.on('tick', function () {
dot.rotate(centerX, centerY);
target.rotate(centerX, centerY);
if (ticksToUnlock < 0) {
if (!dot.intersects(target) && shouldSubtractPoint) {
score = Math.max(0, score - 1);
LK.setScore(score);
scoreTxt.setText(score.toString());
LK.effects.flashObject(dot, 0xff0000, 1000);
LK.effects.flashObject(target, 0xff0000, 1000);
}
shouldSubtractPoint = dot.intersects(target);
}
ticksToUnlock--;
});
game.on('down', function () {
if (dot.intersects(target)) {
score++;
LK.setScore(score);
scoreTxt.setText(score.toString());
dot.speed *= -1;
target.maxSpeed += 0.002;
target.speed = (Math.random() * target.maxSpeed + 0.01) * (target.speed > 0 ? -1 : 1);
ticksToUnlock = 20;
shouldSubtractPoint = false;
LK.effects.flashScreen(0xffffff, 150);
} else {
LK.effects.flashScreen(0xff8585, 500);
LK.showGameOver();
}
});