/**** * Classes ****/ // Assets will be automatically created based on usage in the code. // Ball class var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('ball', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 5; self.speedY = -5; self.move = function () { self.x += self.speedX; self.y += self.speedY; }; }); // Brick class var Brick = Container.expand(function () { var self = Container.call(this); var brickGraphics = self.attachAsset('brick', { anchorX: 0.5, anchorY: 0.5 }); }); // Paddle class var Paddle = Container.expand(function () { var self = Container.call(this); var paddleGraphics = self.attachAsset('paddle', { anchorX: 0.5, anchorY: 0.5 }); self.move = function (xPosition) { self.x = xPosition; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ var ball = game.addChild(new Ball()); ball.x = 1024; // Center horizontally ball.y = 1366; // Center vertically var paddle = game.addChild(new Paddle()); paddle.x = 1024; // Center horizontally paddle.y = 2500; // Position towards the bottom var bricks = []; var brickRowCount = 5; var brickColumnCount = 8; var brickWidth = 200; var brickHeight = 100; var brickPadding = 20; var brickOffsetTop = 200; var brickOffsetLeft = 204; // Create bricks for (var c = 0; c < brickColumnCount; c++) { for (var r = 0; r < brickRowCount; r++) { var brickX = c * (brickWidth + brickPadding) + brickOffsetLeft; var brickY = r * (brickHeight + brickPadding) + brickOffsetTop; var brick = game.addChild(new Brick()); brick.x = brickX + brickWidth / 2; brick.y = brickY + brickHeight / 2; bricks.push(brick); } } // Handle touch move for paddle game.on('move', function (obj) { var pos = obj.event.getLocalPosition(game); paddle.move(pos.x); }); // Game tick LK.on('tick', function () { ball.move(); // Ball collision with walls if (ball.x <= 0 || ball.x >= 2048) { ball.speedX = -ball.speedX; } if (ball.y <= 0) { ball.speedY = -ball.speedY; } // Ball collision with paddle if (ball.intersects(paddle)) { ball.speedY = -ball.speedY; } // Ball collision with bricks for (var b = bricks.length - 1; b >= 0; b--) { if (ball.intersects(bricks[b])) { ball.speedY = -ball.speedY; bricks[b].destroy(); bricks.splice(b, 1); } } // Game over condition if (ball.y >= 2732) { LK.showGameOver(); } });
/****
* Classes
****/
// Assets will be automatically created based on usage in the code.
// Ball class
var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('ball', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedX = 5;
self.speedY = -5;
self.move = function () {
self.x += self.speedX;
self.y += self.speedY;
};
});
// Brick class
var Brick = Container.expand(function () {
var self = Container.call(this);
var brickGraphics = self.attachAsset('brick', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Paddle class
var Paddle = Container.expand(function () {
var self = Container.call(this);
var paddleGraphics = self.attachAsset('paddle', {
anchorX: 0.5,
anchorY: 0.5
});
self.move = function (xPosition) {
self.x = xPosition;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
var ball = game.addChild(new Ball());
ball.x = 1024; // Center horizontally
ball.y = 1366; // Center vertically
var paddle = game.addChild(new Paddle());
paddle.x = 1024; // Center horizontally
paddle.y = 2500; // Position towards the bottom
var bricks = [];
var brickRowCount = 5;
var brickColumnCount = 8;
var brickWidth = 200;
var brickHeight = 100;
var brickPadding = 20;
var brickOffsetTop = 200;
var brickOffsetLeft = 204;
// Create bricks
for (var c = 0; c < brickColumnCount; c++) {
for (var r = 0; r < brickRowCount; r++) {
var brickX = c * (brickWidth + brickPadding) + brickOffsetLeft;
var brickY = r * (brickHeight + brickPadding) + brickOffsetTop;
var brick = game.addChild(new Brick());
brick.x = brickX + brickWidth / 2;
brick.y = brickY + brickHeight / 2;
bricks.push(brick);
}
}
// Handle touch move for paddle
game.on('move', function (obj) {
var pos = obj.event.getLocalPosition(game);
paddle.move(pos.x);
});
// Game tick
LK.on('tick', function () {
ball.move();
// Ball collision with walls
if (ball.x <= 0 || ball.x >= 2048) {
ball.speedX = -ball.speedX;
}
if (ball.y <= 0) {
ball.speedY = -ball.speedY;
}
// Ball collision with paddle
if (ball.intersects(paddle)) {
ball.speedY = -ball.speedY;
}
// Ball collision with bricks
for (var b = bricks.length - 1; b >= 0; b--) {
if (ball.intersects(bricks[b])) {
ball.speedY = -ball.speedY;
bricks[b].destroy();
bricks.splice(b, 1);
}
}
// Game over condition
if (ball.y >= 2732) {
LK.showGameOver();
}
});