holesome/src/game/player/player.cpp

51 lines
1.1 KiB
C++
Raw Normal View History

2023-05-08 18:20:55 +02:00
#include "player.hpp"
#include "../../sprites/texture_manager.hpp"
#include "../../sprites/single_sprite.hpp"
2023-05-17 23:22:45 +02:00
#include <utility>
Player::Player(std::shared_ptr<InputIdentity> assignedInput, const std::string &image, WorldCoordinates initCoordinates)
{
coordinates->set(initCoordinates);
input = std::move(assignedInput);
auto sprite = std::make_shared<SingleSprite>(TextureManager::getInstance()->getTexture(image));
addChild(sprite);
}
sf::Vector2f Player::getTrackablePosition() const
{
return coordinates->isometric().toScreen();
}
sf::Vector2f Player::getTrackableSize() const
{
// TODO: Proper implementation
return {50, 50};
}
2023-05-24 14:00:51 +02:00
void Player::update()
{
if (!input->isActive)
{
setActive(false);
return;
}
auto moveDirection = input->direction.asIsometricVector();
2023-05-29 00:22:36 +02:00
auto moveDelta = moveDirection * speed * FRAME_TIME.asSeconds();
coordinates->move(moveDelta);
}
TrackableState Player::getTrackableState() const
{
if (getActive())
{
return TrackableState::TRACKING;
} else
{
return TrackableState::END_TRACKING;
}
}