Хранение спрайта как переменную или через указатель в SFML

У меня в классе персонажа хранится его текстура и спрайт. Также есть методы для их инициализации, однако компилятор постоянно ругается, что у sf::Sprite отсутствует конструктор по умолчанию, поэтому я в списке инициализации прописываю sprite(texture). Далее с помощью методов я уже полностью готовлю их к работе, но ничего не выводится на экран. Если же я буду использовать указатель на спрайт, дабы компилятор не ругался, а потом сделаю this->sprite = new sf::Sprite...То спрайт выведется корректно. Так вот, стоит ли хранить спрайт как sf::Sprite*, или есть какие-то способы использовать переменную типа sf::Sprite?

Код при использовании sf::Sprite:


Player::Player(): sprite(texture)
{
    this->initTexture();
    this->initSprite();
    this->sprite.setPosition({ 300, 300 });
}
void Player::initSprite() {
    this->sprite.setTexture(this->texture);
}

void Player::initTexture(){
    if (!this->texture.loadFromFile("../resources/ship.png")) {
        std::cout << "ERROR::DOWNLOADTEXTURE";
    }
}

Изначально предполагалось инициализировать спрайт в методе, но ошибка мешает


Ответы (0 шт):