User prompt
make the bigger when scroe reaches 100
User prompt
make the enemy's spawn
User prompt
add enemy's that die when hit by the ball
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'toString')' in or related to this line: 'var scoreTxt = new Text2(score.toString(), {' Line Number: 71
User prompt
add a score
User prompt
make the ball bounce a bit better
User prompt
make the power up spawn at the start
User prompt
add power up that randomly spawns and make the ball bigger
User prompt
add a make the brick falldown as more spawn
Initial prompt
break block
/****
* 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
var spawnTick = 0; // Initialize spawn tick counter
LK.on('tick', function () {
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();
}
}); ===================================================================
--- 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