User prompt
Bricks are not being destroyed on tap, please fix it
User prompt
Still not being destoryed on tap
User prompt
Please fix the bug: 'Uncaught TypeError: brick.containsPoint is not a function' in or related to this line: 'if (brick.containsPoint({' Line Number: 130
User prompt
player should add 1 point, for every point taken out of a brick
User prompt
show points on the top rright
User prompt
player can buy extra balls by using points
User prompt
showbutton to buy balls and its cost
User prompt
make sure the buy ball button is visible in the top of the screen
User prompt
buy ball button should be on the left of the points
User prompt
make buy ball an actual button
User prompt
Please fix the bug: 'LK.UIButton is not a constructor' in or related to this line: 'var buyBallButton = new LK.UIButton({' Line Number: 82
User prompt
balls should spanw with a random direction
User prompt
make buy ball an actual button
User prompt
Please fix the bug: 'LK.Button is not a constructor' in or related to this line: 'var buyBallButton = new LK.Button({' Line Number: 82
User prompt
Please fix the bug: 'LK.Text2 is not a constructor' in or related to this line: 'var buyBallButton = new LK.Text2('Buy Ball (50)', {' Line Number: 82
User prompt
move buy ball button to the top center of the screen
User prompt
create a hud where the points and the buy button will be
User prompt
move buy ball button more to the left
Code edit (7 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
add icon of ball inside of buy button
Code edit (4 edits merged)
Please save this source code
User prompt
show cost of ball under the button
User prompt
Can you fix collision between ball and bricks
User prompt
when a brick is destroyed only add the points it had in the begining
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Ball class representing the ball that breaks bricks
var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('ball', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.direction = {
x: 1,
y: -1
};
self.update = function () {
self.x += self.speed * self.direction.x;
self.y += self.speed * self.direction.y;
// Bounce off walls
if (self.x <= 0 || self.x >= 2048) {
self.direction.x *= -1;
self.x = self.x <= 0 ? 0 : 2048; // Correct position to prevent getting stuck in the wall
}
if (self.y <= 0 || self.y >= 2632) {
self.direction.y *= -1;
self.y = self.y <= 0 ? 0 : 2632; // Correct position to prevent getting stuck in the wall
}
};
});
// Brick class representing the bricks to be broken
var Brick = Container.expand(function () {
var self = Container.call(this);
var brickGraphics = self.attachAsset('brick', {
anchorX: 0.5,
anchorY: 0.5
});
self.health = 1;
// Create a text object to display the brick's health
self.healthText = new Text2(self.health.toString(), {
size: 50,
fill: 0xFFFFFF
});
self.healthText.anchor.set(0.5, 0.5);
self.addChild(self.healthText);
self.hit = function () {
self.health -= 1;
self.healthText.setText(self.health.toString());
if (self.health <= 0) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize game variables
var balls = [];
var bricks = [];
var score = 0;
// Create and position bricks
function createBricks() {
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 10; j++) {
var brick = new Brick();
brick.x = 2048 / 2 - 10 * 160 / 2 + j * 160; // Center bricks horizontally
brick.y = 2732 / 2 - 5 * 120 / 2 + i * 120; // Center bricks vertically
bricks.push(brick);
game.addChild(brick);
}
}
}
// Create a new ball
function createBall() {
var ball = new Ball();
ball.x = 1024;
ball.y = 2000;
balls.push(ball);
game.addChild(ball);
}
// Handle game updates
game.update = function () {
// Update balls
for (var i = balls.length - 1; i >= 0; i--) {
var ball = balls[i];
ball.update();
// Check for collisions with bricks
for (var j = bricks.length - 1; j >= 0; j--) {
var brick = bricks[j];
if (ball.intersects(brick)) {
brick.hit();
// Calculate bounce direction based on the position where the ball hit the brick
var hitPosition = (ball.x - brick.x) / brick.width;
ball.direction.x = hitPosition;
ball.direction.y *= -1;
score += 10;
}
}
// Remove ball if it goes off screen
if (ball.y > 2732) {
ball.destroy();
balls.splice(i, 1);
}
}
// Check for game over
if (balls.length === 0) {
createBall();
}
};
// Handle screen tap to launch a new ball
game.down = function (x, y, obj) {
// Check if a brick was touched
for (var i = 0; i < bricks.length; i++) {
var brick = bricks[i];
if (brick.intersects({
x: x,
y: y
})) {
brick.hit();
break;
}
}
};
// Initialize game elements
createBricks();
createBall();