This commit is contained in:
DarthMooMancer
2025-10-02 21:34:26 -04:00
parent 6334283463
commit df9493fb1d
3 changed files with 16 additions and 9 deletions
+3 -2
View File
@@ -36,14 +36,15 @@ struct Ball {
Point* m_origin;
int vx;
int vy;
void determine_new_position();
void determine_new_position(int &paddle_lives, int reset_ball_x, int reset_ball_y);
void change_velocity(char d);
};
struct Paddle {
Paddle(int size) : _size(size) {};
Paddle(int size) : _size(size), m_hearts(3) {};
~Paddle();
int _size;
int m_hearts;
Point** m_nodes;
enum Direction m_direction;
void determine_new_position(Point* (*board)[COL]);
+4 -2
View File
@@ -119,11 +119,13 @@ void Ball::change_velocity(char d) {
}
}
void Ball::determine_new_position() {
void Ball::determine_new_position(int &paddle_lives, int reset_ball_x, int reset_ball_y) {
if(m_origin->m_row <= 0) {
vy = 1;
} else if(m_origin->m_row >= ROW - 1) {
vy = -1;
paddle_lives--;
m_origin->m_row = reset_ball_y;
m_origin->m_col = reset_ball_x;
}
if(m_origin->m_col <= 0) {
vx = 1;
+9 -5
View File
@@ -6,7 +6,7 @@
#include "elements.hpp"
int main() {
int buffer_size = 50, buffer_block_size = 15;
int buffer_size = 50, block_buffer_size = 15;
bool running = true;
Point* buffer[50] = {};
Input input;
@@ -22,14 +22,18 @@ int main() {
while (running) {
paddle.determine_new_position(window.m_board);
paddle.check_collision(ball);
trim_block_buffer_on_collision(buffer, buffer_size, block_buffer, buffer_block_size, ball);
ball.determine_new_position();
trim_block_buffer_on_collision(buffer, buffer_size, block_buffer, block_buffer_size, ball);
ball.determine_new_position(paddle.m_hearts, (ROW - 5), (COL / 2));
window.clear_display();
window.update_board(buffer, 50);
window.update_board(buffer, buffer_size);
window.draw_display(FPMS);
// Create a clause that closes game on lives = 0
std::cout << "Hearts left: " << paddle.m_hearts << "\n";
}
input_thread.join();
for(int i = 0; i < buffer_block_size; i++) {
// TODO
// move below to a cleanup function instead
for(int i = 0; i < block_buffer_size; i++) {
delete block_buffer[i];
}
delete[] block_buffer;