1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:57:45 +00:00

Breakout: Use the pending new ball rect for brick collision testing

Otherwise the ball will bounce one frame *after* hitting a brick.
This commit is contained in:
Andreas Kling 2020-11-09 13:15:30 +01:00
parent 8e4e77fcf4
commit 0bf927a824

View file

@ -204,10 +204,10 @@ void Game::tick()
for (auto& brick : m_bricks) { for (auto& brick : m_bricks) {
if (brick.dead) if (brick.dead)
continue; continue;
if (m_ball.rect().intersects(brick.rect)) { if (new_ball.rect().intersects(brick.rect)) {
brick.dead = true; brick.dead = true;
auto overlap = m_ball.rect().intersected(brick.rect); auto overlap = new_ball.rect().intersected(brick.rect);
if (overlap.width() < overlap.height()) { if (overlap.width() < overlap.height()) {
new_ball.x = m_ball.x; new_ball.x = m_ball.x;
new_ball.vx *= -1; new_ball.vx *= -1;