Хранение спрайта как переменную или через указатель в 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";
}
}
Изначально предполагалось инициализировать спрайт в методе, но ошибка мешает