Я делаю небольшую игру на своем маленьком игровом движке, созданном на OpenGL и C ++. Я использую в своей игре класс stati c под названием ResourceManager, который отвечает за загрузку и возврат текстур, шейдеров, aud ios, et c. Это состояние c, поэтому я могу получить текстуры, шейдеры, Aud ios и др. c. в любом классе, например, игрок без инициализации, и его очень легко оценить. Но что, если мне нужны разные текстуры и aud ios для разных уровней, я должен перенести все загруженные текстуры и звуки предыдущего уровня на следующий уровень и продолжать добавлять их. И я думаю, что это не очень хорошая практика. Я должен загрузить необходимые текстуры и Aud ios для этого уровня и при переходе на следующий уровень удалить все текстуры и Aud ios и загрузить новые текстуры и Aud ios для этого уровня. Это сохранит мою память маленькой. Но я не могу сделать это с классами stati c, потому что у них нет деструктора конструктора.
Должен ли я использовать класс non-stati c для обработки ресурсов другого уровня.
Я очень смущен. Скажите, пожалуйста, как я могу это сделать и что я делаю неправильно, и как разработчик игры решает эту проблему.
Извините за очень плохой английский sh. Спасибо за чтение.