Split 'Ball' class into header and implementation files

This commit is contained in:
2024-02-15 07:47:16 -05:00
parent 1b1dc4a3a2
commit 86411ae907
2 changed files with 44 additions and 28 deletions

34
ball.cpp Normal file
View File

@@ -0,0 +1,34 @@
#include "includes/raylib-cpp/raylib-cpp.hpp"
#include "includes/ball.hpp"
Ball::Ball(int pos_x, int pos_y, int radius, int vel_x = 0, int vel_y = 0) {
this->pos = raylib::Vector2(pos_x, pos_y);
this->initial_pos = this->pos; // Create a copy of the position vector
this->radius = radius;
this->color = raylib::Color::White();
this->vel = raylib::Vector2(vel_x, vel_y);
this->initial_vel = this->vel; // Create a copy of the velocity vector
return;
}
void Ball::setPosition(Vector2 pos) {
this->pos = pos;
}
void Ball::reset() {
this->pos = this->initial_pos;
this->vel = this->initial_vel;
return;
}
void Ball::updatePosition() {
this->pos.x += this->vel.x;
this->pos.y += this->vel.y;
return;
}
void Ball::draw() {
DrawCircle(this->pos.x, this->pos.y, this->radius, this->color); // This is a raylib function, not a raylib-cpp function
return;
}

View File

@@ -3,7 +3,6 @@
class Ball { class Ball {
public: public:
/* Variables */
raylib::Vector2 pos; raylib::Vector2 pos;
raylib::Vector2 initial_pos; raylib::Vector2 initial_pos;
raylib::Vector2 vel; raylib::Vector2 vel;
@@ -11,37 +10,20 @@ public:
int radius; int radius;
raylib::Color color; raylib::Color color;
/* Functions */ /* Constructor */
Ball(int pos_x, int pos_y, int radius, int vel_x = 0, int vel_y = 0) { Ball(int pos_x, int pos_y, int radius, int vel_x, int vel_y);
this->pos = raylib::Vector2(pos_x, pos_y);
this->initial_pos = this->pos; // Create a copy of the position vector
this->radius = radius;
this->color = raylib::Color::White();
this->vel = raylib::Vector2(vel_x, vel_y);
this->initial_vel = this->vel; // Create a copy of the velocity vector
return;
}
void setPosition(Vector2 pos) { /* Set the position of the ball */
this->pos = pos; void setPosition(Vector2 pos);
}
void reset() { /* Reset the position and velocity of the ball */
this->pos = this->initial_pos; void reset();
this->vel = this->initial_vel;
return;
}
void updatePosition() { /* Update the position of the ball based on its velocity */
this->pos.x += this->vel.x; void updatePosition();
this->pos.y += this->vel.y;
return;
}
void draw() { /* Draw the ball onto the screen */
DrawCircle(this->pos.x, this->pos.y, this->radius, this->color); // This is a raylib function, not a raylib-cpp function void draw();
return;
}
}; };