Вопрос немного отброшен, так как я не имею в виду удаление самого экрана. Я использую Enum и оператор switch для переключения экранов, а не классов Screen и Game. Я действительно спрашиваю здесь, когда я переключаюсь из одного состояния игры в другое, должен ли я использовать все свои одноразовые вещи перед собой? Или я просто держу их всех и не волнуюсь об этом, несмотря на то, что они не оказывают им больше, так как я показываю отдельный экран? Мне было бы неприятно, что каждый раз, когда я хочу переключиться на другой, я должен все время использовать все ресурсы на своем экране, поэтому мне интересно, действительно ли это необходимо.Когда выставлять экраны в LibGDX?
ответ
Это ваш выбор и тип вашей игры (у вашей игры много ресурсов).
Если у вас много ресурсов, тогда лучше разместить ресурс одного экрана, а затем загрузить ресурс другого экрана в память и после этого использовать этот ресурс.
В этом сценарии асинхронно отображаются экран загрузки и ресурс загрузки.
Если у вас нет большого количества ресурсов, распоряжайтесь ресурсами только при выходе из игры. Унаследованная игра dispose()
- лучшее место для размещения игрового ресурса в этом сценарии, и здесь вызывается экран вызова. так что конкретный ресурс экрана может быть удален.
Быстрые правила могут быть:
Если загрузка что-то (Texture, текстурный атлас, музыка, звук и т.д.) при запуске приложения, и вы не имеете проблему с кучей памяти - выбрасывайте его в методе Dispose приложения.
Но если вы загружаете что-то особенное для своего экрана при старте экрана, вы должны утилизировать его в режиме удаления экрана.
Если вы не распоряжаетесь ресурсом для ex. Текстура будет по-прежнему в памяти, даже если вы ее не визуализируете. Когда вы загружаете текстуру внутри экрана, не устанавливайте ее внутри метода удаления экрана, это может вызвать утечку памяти, потому что вы снова загружаете одну и ту же текстуру при повторном запуске экрана.