#include "player.hpp" #include sf::Vector2f Player::getTrackablePosition() const { return coordinates->isometric().toScreen(); } sf::Vector2f Player::getTrackableSize() const { // TODO: Proper implementation return {circle->getRadius() * 2.f, circle->getRadius() * 2.f}; } void Player::update() { if (!input->isActive) { isActive = false; return; } auto moveDirection = input->direction.asIsometricVector(); auto moveDelta = moveDirection * speed * FRAME_TIME.asSeconds(); coordinates->move(moveDelta); } void Player::draw(sf::RenderWindow *window) const { circle->draw(window); } Player::~Player() { delete circle; } Player::Player(std::shared_ptr assignedInput, const sf::Color color, WorldCoordinates initCoordinates) { coordinates->set(initCoordinates); input = std::move(assignedInput); circle = new CircleObject(10, color); circle->coordinates->setParent(coordinates); } TrackableState Player::getTrackableState() const { if (isActive) { return TrackableState::TRACKING; } else { return TrackableState::END_TRACKING; } }