mini optimization to make making entities easier

This commit is contained in:
DarthMooMancer
2025-10-16 17:36:44 -04:00
parent ec079b757f
commit 5ab1e73b1a
5 changed files with 14 additions and 1293 deletions
-2
View File
@@ -23,8 +23,6 @@ FetchContent_MakeAvailable(SFML)
add_executable(SFML_game_engine ${SOURCES}) add_executable(SFML_game_engine ${SOURCES})
# target_link_libraries(SFML_game_engine PRIVATE SFML::Graphics)
# target_include_directories(SFML_game_engine PRIVATE include)
target_link_libraries(SFML_game_engine target_link_libraries(SFML_game_engine
PRIVATE PRIVATE
SFML::Graphics SFML::Graphics
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -5,27 +5,26 @@
#include <SFML/System/Vector2.hpp> #include <SFML/System/Vector2.hpp>
class Entity { class Entity {
protected: public:
Entity(sf::Vector2<float> size, sf::Vector2<float> starting_position, float thickness, sf::Color inside_color, sf::Color border_color);
bool find_intersection(Entity &entity);
sf::RectangleShape rect; sf::RectangleShape rect;
protected:
sf::Color inside_color; sf::Color inside_color;
sf::Color border_color; sf::Color border_color;
float top_left; float top_left;
float bottom_left; float bottom_left;
float top_right; float top_right;
float bottom_right; float bottom_right;
float acceleration;
float border_thickness; float border_thickness;
}; };
class Player { class Player : public Entity {
public: public:
Player(sf::Vector2<float> size, sf::Vector2<float> starting_position, float acceleration, float initial_acceleration, float thickness, float velocity_x, sf::Color inside_color, sf::Color border_color); Player(sf::Vector2<float> size, sf::Vector2<float> starting_position, float acceleration, float initial_acceleration, float thickness, float velocity_x, sf::Color inside_color, sf::Color border_color);
sf::RectangleShape rect;
sf::Vector2<float> m_size;
sf::Vector2<float> m_velocity; sf::Vector2<float> m_velocity;
float m_acceleration; float m_acceleration;
float m_jump_strength; float m_jump_strength;
float m_thickness;
bool m_jumping; bool m_jumping;
void handle_movment(); void handle_movment();
sf::Vector2<float> get_velocity(); sf::Vector2<float> get_velocity();
+6 -2
View File
@@ -12,16 +12,20 @@
* *
* */ * */
Player::Player(sf::Vector2<float> size, sf::Vector2<float> starting_position, float acceleration, float initial_acceleration, float thickness, float velocity_x, sf::Color inside_color, sf::Color border_color) {
Entity::Entity(sf::Vector2<float> size, sf::Vector2<float> starting_position, float thickness, sf::Color inside_color, sf::Color border_color) {
rect.setSize(size); rect.setSize(size);
rect.setPosition(starting_position); rect.setPosition(starting_position);
rect.setOutlineThickness(thickness); // Needs to be the same as floor height to be properly on the line; else it will just show up above the line or in the line rect.setOutlineThickness(thickness); // Needs to be the same as floor height to be properly on the line; else it will just show up above the line or in the line
rect.setFillColor(inside_color); rect.setFillColor(inside_color);
rect.setOutlineColor(border_color); rect.setOutlineColor(border_color);
}
Player::Player(sf::Vector2<float> size, sf::Vector2<float> starting_position, float acceleration, float initial_acceleration, float thickness, float velocity_x, sf::Color inside_color, sf::Color border_color) : Entity(size, starting_position, thickness, inside_color, border_color) {
m_acceleration = acceleration; m_acceleration = acceleration;
m_jump_strength = initial_acceleration; m_jump_strength = initial_acceleration;
m_velocity.x = velocity_x; m_velocity.x = velocity_x;
m_thickness = thickness;
} }
void Player::handle_movment() { void Player::handle_movment() {
+3 -3
View File
@@ -67,12 +67,12 @@ int main() {
player.m_velocity.y = 0; player.m_velocity.y = 0;
player.m_jumping = false; player.m_jumping = false;
} }
float right_border = WIDTH - player.rect.getSize().x - player.m_thickness; float right_border = WIDTH - player.rect.getSize().x - player.rect.getOutlineThickness();
if(player.rect.getPosition().x > right_border) { if(player.rect.getPosition().x > right_border) {
player.rect.setPosition({ right_border, player.rect.getPosition().y}); player.rect.setPosition({ right_border, player.rect.getPosition().y});
} }
if(player.rect.getPosition().x < player.m_thickness) { if(player.rect.getPosition().x < player.rect.getOutlineThickness()) {
player.rect.setPosition({ player.m_thickness, player.rect.getPosition().y}); player.rect.setPosition({ player.rect.getOutlineThickness(), player.rect.getPosition().y});
} }
// if(rect.getGlobalBounds().findIntersection(player.rect.getGlobalBounds())) { // if(rect.getGlobalBounds().findIntersection(player.rect.getGlobalBounds())) {
// vel_y = -20.0f; // vel_y = -20.0f;