var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.createAsset('ball', 'Soccer Ball', .5, .5);
self.speed = {
x: 10,
y: 10
};
self.move = function () {
self.x += self.speed.x;
self.y += self.speed.y;
};
self.bounce = function (axis) {
self.speed[axis] *= -1;
};
});
var Paddle = Container.expand(function () {
var self = Container.call(this);
var paddleGraphics = self.createAsset('paddle', 'Player Paddle', .5, .5);
self.speed = 10;
self.move = function (direction) {
self.y += direction * self.speed;
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var background = self.createAsset('background', 'Game Background', 0, 0);
background.width = 2048;
background.height = 2732;
var ball = self.addChild(new Ball());
ball.x = 2048 / 2;
ball.y = 2732 / 2;
var playerPaddle = self.addChild(new Paddle());
playerPaddle.x = 100;
playerPaddle.y = 2732 / 2;
var aiPaddle = self.addChild(new Paddle());
aiPaddle.x = 2048 - 100;
aiPaddle.y = 2732 / 2;
var scoreTxt = new Text2('0 - 0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(.5, 0);
LK.gui.topCenter.addChild(scoreTxt);
var playerScore = 0;
var aiScore = 0;
function updateScore() {
scoreTxt.setText(playerScore + ' - ' + aiScore);
}
LK.on('tick', function () {
ball.move();
if (ball.x <= 0) {
if (aiScore < 5) {
aiScore++;
updateScore();
if (aiScore == 5) {
LK.showGameOver();
}
} else {
LK.showGameOver();
}
ball.x = 2048 / 2;
ball.y = 2732 / 2;
}
if (ball.x >= 2048) {
if (playerScore < 5) {
playerScore++;
updateScore();
if (playerScore == 5) {
LK.showGameOver();
}
} else {
LK.showGameOver();
}
ball.x = 2048 / 2;
ball.y = 2732 / 2;
}
if (ball.y <= 0 || ball.y >= 2732) {
ball.bounce('y');
}
if (ball.intersects(playerPaddle) || ball.intersects(aiPaddle)) {
ball.bounce('x');
}
var diff = ball.y - aiPaddle.y;
if (diff > 0) {
aiPaddle.move(1);
} else {
aiPaddle.move(-1);
}
});
stage.on('move', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(self);
playerPaddle.y = pos.y;
});
});