diff --git a/include/elements.hpp b/include/elements.hpp index c75a972..9e01b43 100644 --- a/include/elements.hpp +++ b/include/elements.hpp @@ -12,7 +12,7 @@ Ball create_new_ball(Point** buffer, int index, int default_vx, int default_vy, Block** create_block_buffer(int starting_array_index, int starting_symbol, int rows, int cols, int length); void rasterize_block(Point** buffer, Block* block, int starting_index); void rasterize_buffer(Point** buffer, Block** block_buffer, int offset); -void trim_block_buffer_on_collision(Block** block_buffer, int block_buffer_size, Ball &ball); +void trim_block_buffer_on_collision(Block** block_buffer, int &block_buffer_size, Ball &ball); enum Direction { LEFT = -1, diff --git a/src/elements.cpp b/src/elements.cpp index 6db08fd..8a7d469 100644 --- a/src/elements.cpp +++ b/src/elements.cpp @@ -53,20 +53,20 @@ void rasterize_block(Point** buffer, Block* block, int starting_index) { void rasterize_buffer(Point** buffer, Block** block_buffer, int offset) { for(int i = 0; i < 15; i++) { + if(block_buffer[i] == nullptr) continue; rasterize_block(buffer, block_buffer[i], offset); offset += 3; } } -void trim_block_buffer_on_collision(Block** block_buffer, int block_buffer_size, Ball &ball) { +void trim_block_buffer_on_collision(Block** block_buffer, int &block_buffer_size, Ball &ball) { for(int i = 0; i < block_buffer_size; i++) { if(block_buffer[i] == nullptr) continue; if(block_buffer[i]->check_collision(ball)) { - for(int a = 0; a < block_buffer[i]->_size; a++) { - delete block_buffer[i]->m_nodes[a]; - } ball.change_velocity('y'); delete block_buffer[i]; + block_buffer[i] = nullptr; + // block_buffer_size--; } } } diff --git a/src/main.cpp b/src/main.cpp index 76a92c4..d814f73 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,23 +11,34 @@ int main(int argc, char **argv) { Point* buffer[50] = {}; Paddle paddle = create_new_paddle(buffer, 1, 3, ROW - 2, '-'); - Ball ball = create_new_ball(buffer, 0, 1, -1, (ROW - 5), (COL / 2), '*' ); + // Ball ball = create_new_ball(buffer, 0, 1, -1, (ROW - 5), (COL / 2), '*' ); + Ball ball = create_new_ball(buffer, 0, 1, -1, 0, 0, '*' ); + int buffer_block_size = 15; Block** block_buffer = create_block_buffer(4, '3', 3, 5, 3); rasterize_buffer(buffer, block_buffer, 4); bool running = true; - std::thread input_thread([&] { input.get_input(running, paddle.m_direction); } ); - - while (running) { - paddle.determine_new_position(window.m_board); - paddle.check_collision(ball); - trim_block_buffer_on_collision(block_buffer, 15, ball); - ball.determine_new_position(); - window.clear_display(); - window.update_board(buffer, 50); - window.draw_display(FPMS); + for(int i = 0; i < buffer_block_size; i++) { + std::cout << block_buffer[i] << "\n"; } - input_thread.join(); + trim_block_buffer_on_collision(block_buffer, buffer_block_size, ball); + rasterize_buffer(buffer, block_buffer, 4); + std::cout << "\n"; + for(int i = 0; i < buffer_block_size; i++) { + std::cout << block_buffer[i] << "\n"; + } + // std::thread input_thread([&] { input.get_input(running, paddle.m_direction); } ); + // + // while (running) { + // paddle.determine_new_position(window.m_board); + // paddle.check_collision(ball); + // trim_block_buffer_on_collision(block_buffer, buffer_block_size, ball); + // ball.determine_new_position(); + // window.clear_display(); + // window.update_board(buffer, 50); + // window.draw_display(FPMS); + // } + // input_thread.join(); for(int i = 0; i < 50; i++) { if(buffer[i] == nullptr) continue; delete buffer[i];