Тестирование столкновения между FilledOval и коллекцией FilledRects в двумерном массиве - PullRequest
0 голосов
/ 18 марта 2020

Я работаю над школьным заданием, в котором нам поручено создать игру "Break Out" в java с использованием библиотеки Object Draw. Мой план состоял в том, чтобы проверить на столкновение, используя метод ".overlaps", но так как мои кирпичи - это серия FilledRects, расположенных в двумерном массиве, я не могу понять, как проверить на столкновение между FilledOval (шар) и отдельными FilledRects. в массиве.

Я создал массив следующим образом:

for (int row = 0; row < BreakoutProgram.NBRICK_ROWS; row++) {

    for (int column = 0; column < BreakoutProgram.NBRICK_COLUMNS; column++) {

        brickPile[row][column] = new FilledRect(bricksStartX + column * (BreakoutProgram.BRICK_WIDTH + BreakoutProgram.BRICK_SEP),
        bricksStartY + row * (BreakoutProgram.BRICK_HEIGHT + BreakoutProgram.BRICK_SEP), BreakoutProgram.BRICK_WIDTH, BreakoutProgram.BRICK_HEIGHT, bricksColor, canvas);

    }

}

Мяч был создан аналогично:

ball = new FilledOval(canvas.getWidth()/2 -BreakoutProgram.BALL_RADIUS/2,canvas.getHeight()/2-BreakoutProgram.BALL_RADIUS/2, BreakoutProgram.BALL_RADIUS,BreakoutProgram.BALL_RADIUS, ballColor, canvas);

Я надеялся проверить столкновение таким образом:

if (ball.overlaps(brickPile[x][y])){
    //reverse direction of ball
}

Любая помощь, которую вы могли бы оказать, была бы очень признательна. Спасибо заранее.

Кирпичи в сетке 10х10. Весло под ними и мяч между ними.

...