diff --git a/src/game.js b/src/game.js new file mode 100644 index 0000000..aca5f7e --- /dev/null +++ b/src/game.js @@ -0,0 +1,33 @@ +import { + BALL_INITIAL_ANGLE, + BALL_RADIUS, + BALL_SPEED, + BRICK_HEIGHT, + BRICK_WIDTH, + CONTAINER_HEIGHT, + CONTAINER_WIDTH, + PADDLE_HEIGHT, + PADDLE_WIDTH, +} from './config'; +import { Ball } from './entities/ball/ball'; +import { layBricks } from './entities/brick/layBricks/layBricks'; +import { Paddle } from './entities/paddle/paddle'; + +/** + * Класс игры c информацией о всех игровых сущностях + */ +export class Game { + /** + * @param {number} columnAmount количество кирпичей по оси X, неотрицателное, целое число + * @param {number} rowAmount количество кирпичей по оси Y, неотрицателное, целое число + */ + constructor(columnAmount, rowAmount) { + this.ball = new Ball(100, 100, BALL_RADIUS); + this.ball.horizontalSpeed = BALL_SPEED * Math.cos(BALL_INITIAL_ANGLE); + this.ball.verticalSpeed = -1 * BALL_SPEED * Math.sin(BALL_INITIAL_ANGLE); + + this.paddle = new Paddle(0, CONTAINER_HEIGHT - PADDLE_HEIGHT, PADDLE_WIDTH, PADDLE_HEIGHT); + + this.bricks = layBricks(columnAmount, rowAmount, BRICK_WIDTH, BRICK_HEIGHT); + } +}