===================================================================
--- original.js
+++ change.js
@@ -1,52 +1,52 @@
-/****
+/****
* 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;
- };
+ 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
- });
+ 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;
- };
+ 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
+ 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());
@@ -61,45 +61,61 @@
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);
- }
+ 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);
+ var pos = obj.event.getLocalPosition(game);
+ paddle.move(pos.x);
});
// Game tick
+var spawnTick = 0; // Initialize spawn tick counter
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();
- }
+ spawnTick++;
+ // Every 600 ticks (10 seconds), spawn a new row of bricks at the top and move existing bricks down
+ if (spawnTick % 600 == 0) {
+ for (var c = 0; c < brickColumnCount; c++) {
+ var brickX = c * (brickWidth + brickPadding) + brickOffsetLeft;
+ var brick = game.addChild(new Brick());
+ brick.x = brickX + brickWidth / 2;
+ brick.y = brickOffsetTop + brickHeight / 2;
+ bricks.push(brick);
+ }
+ // Move existing bricks down
+ for (var i = 0; i < bricks.length; i++) {
+ bricks[i].y += brickHeight + brickPadding;
+ }
+ }
+ 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();
+ }
});
\ No newline at end of file