Как инициализировать ресурсы с использованием библиотеки SFML в C ++? - PullRequest
0 голосов
/ 05 ноября 2018

Я работаю над игрой simpe tank как проект в SFML. Я впервые использую эту библиотеку, и у меня возникают некоторые проблемы при создании объекта Assets:

Заголовок игры:

class Game
{
Assets as;
}

Актив заголовка:

Class Assets
{ 
 Assets() {
    loadTextures();
    loadSprites();
} 
public:
    Texture t1;
    Sprite s1;
public:
    void loadTextures();
    void loadSprites();
}

Файл cpp активов:

 void Assets::loadTextures()
{
if (!t1.loadFromFile("images/tank.png"))
    cout << "Error 42 - File not found " << endl;
}

void Assets::loadSprites()
{
    s1.setTexture(t1);
}

И основная функция в Source.cpp:

int main(int argc, char ** argv)
{
Game game;

return 0;
}

И у меня есть ошибка и 2 примечания. Ошибка: 'Game :: Game (void)': попытка сослаться на удаленную функцию

примечание: компилятор сгенерировал здесь «Game :: Game»

note: 'Game :: Game (void)': функция была неявно удалена, поскольку базовый класс вызывает удаленную или недоступную функцию 'Assets :: Assets (void)'

Все они появляются, как только я пытаюсь инициализировать объект Assets, и я понятия не имею, почему.

1 Ответ

0 голосов
/ 05 ноября 2018

Конструктор активов по умолчанию является закрытым, убедитесь, что он общедоступен.

Игра имеет объект Assets в качестве участника. Это создается по умолчанию при создании игры. Конструктор по умолчанию является закрытым, и поэтому объект активов не может быть создан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...