Я должен представить клон Breakout, и я борюсь с обнаружением столкновения шара и кирпичей. В принципе, обнаружение столкновения работает, но мяч разрушает кирпич примерно на 10 пикселей от визуального объекта. Я проверяю границы обоих объектов, но я думаю, проблема в том, что мяч является движущимся объектом, а кирпич является статическим.Обнаружение столкновений работает неправильно
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
brick = brickArray[i][j];
if (brick == null)
continue;
areBricksLeft = true;
Bounds brickBounds = brick.getBoundsInParent();
Bounds ballBounds = ball.getBoundsInParent();
if (brickBounds.intersects(ballBounds)) {
brick.removeBrickAt(i, j, brick, brickArray, brickPane);
didHitBrick = true;
}
}
}
Я думаю, что это из-за круглой формы шара. Положение x круга начинается от центра, в то время как прямоугольник или квадрат имеют положение x в начале. –