#pragma once #include #include #include struct Entity { sf::Vector2f position; float speed; sf::Vector2f direction; sf::Vector2f velocity; virtual void update(sf::Time delta) = 0; void set_position(sf::Vector2f new_pos); void set_size(sf::Vector2f new_size); }; struct Player { const float START_SPEED = 200; const float START_HEALTH = 100; sf::Vector2f position; sf::Sprite sprite; sf::Texture texture; sf::Vector2f resolution; sf::IntRect arena; int tile_size; bool up_pressed; bool down_pressed; bool left_pressed; bool right_pressed; int health; int max_health; sf::Time last_hit; float speed; Player(); void spawn(sf::IntRect arena, sf::Vector2f resolution, int tile_size); void reset(); bool hit(sf::Time time_hit); void update(float delta, sf::Vector2i mouse_position); void upgrade_speed(); void upgrade_health(); void increase_health_level(int amount); };