readd: win/lose conditions
This commit is contained in:
@@ -13,6 +13,8 @@ Block** create_block_buffer(int starting_array_index, int starting_symbol, int r
|
|||||||
void rasterize_block(Point** buffer, Block* block, int starting_index);
|
void rasterize_block(Point** buffer, Block* block, int starting_index);
|
||||||
void rasterize_buffer(Point** buffer, Block** block_buffer, int offset);
|
void rasterize_buffer(Point** buffer, Block** block_buffer, int offset);
|
||||||
void trim_block_buffer_on_collision(Point** buffer, int buffer_size, Block** block_buffer, int &block_buffer_size, Ball &ball);
|
void trim_block_buffer_on_collision(Point** buffer, int buffer_size, Block** block_buffer, int &block_buffer_size, Ball &ball);
|
||||||
|
void cleanup(Block** block_buffer, int block_buffer_size);
|
||||||
|
bool is_block_buffer_empty(Block** block_buffer, int block_buffer_size);
|
||||||
|
|
||||||
enum Direction {
|
enum Direction {
|
||||||
LEFT = -1,
|
LEFT = -1,
|
||||||
|
|||||||
@@ -34,6 +34,26 @@ Block** create_block_buffer(int starting_array_index, int starting_symbol, int r
|
|||||||
return block_buffer;
|
return block_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_block_buffer_empty(Block** block_buffer, int block_buffer_size) {
|
||||||
|
int total_clear_blocks = 0;
|
||||||
|
for(int i = 0; i < block_buffer_size; i++) {
|
||||||
|
if(block_buffer[i] == nullptr) {
|
||||||
|
total_clear_blocks++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(total_clear_blocks == block_buffer_size) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cleanup(Block** block_buffer, int block_buffer_size) {
|
||||||
|
for(int i = 0; i < block_buffer_size; i++) {
|
||||||
|
delete block_buffer[i];
|
||||||
|
}
|
||||||
|
delete[] block_buffer;
|
||||||
|
}
|
||||||
|
|
||||||
void rasterize_block(Point** buffer, Block* block, int starting_index) {
|
void rasterize_block(Point** buffer, Block* block, int starting_index) {
|
||||||
for(int i = 0; i < block->_size; i++) {
|
for(int i = 0; i < block->_size; i++) {
|
||||||
buffer[starting_index + i] = block->m_nodes[i];
|
buffer[starting_index + i] = block->m_nodes[i];
|
||||||
|
|||||||
+9
-7
@@ -27,15 +27,17 @@ int main() {
|
|||||||
window.clear_display();
|
window.clear_display();
|
||||||
window.update_board(buffer, buffer_size);
|
window.update_board(buffer, buffer_size);
|
||||||
window.draw_display(FPMS);
|
window.draw_display(FPMS);
|
||||||
// Create a clause that closes game on lives = 0
|
if(paddle.m_hearts <= 0) {
|
||||||
|
running = false;
|
||||||
|
std::cout << "No Hearts left! You lose!\n";
|
||||||
|
}
|
||||||
|
if(is_block_buffer_empty(block_buffer, block_buffer_size)) {
|
||||||
|
running = false;
|
||||||
|
std::cout << "No Blocks left! You win!\n";
|
||||||
|
}
|
||||||
std::cout << "Hearts left: " << paddle.m_hearts << "\n";
|
std::cout << "Hearts left: " << paddle.m_hearts << "\n";
|
||||||
}
|
}
|
||||||
input_thread.join();
|
input_thread.join();
|
||||||
// TODO
|
cleanup(block_buffer, block_buffer_size);
|
||||||
// move below to a cleanup function instead
|
|
||||||
for(int i = 0; i < block_buffer_size; i++) {
|
|
||||||
delete block_buffer[i];
|
|
||||||
}
|
|
||||||
delete[] block_buffer;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user