аndroid gamedev #12. Создание игры для андроид. Автоматизируем работу с ресурсами

Автор Maksim Inshakov
аndroid gamedev #12. Создание игры для андроид. Автоматизируем работу с ресурсами

Всем привет.

Виталий и мы продолжаем серию уроков по разработке игр. Сегодня мы рассмотрим менеджеры ресурсов. ДДТ Что такое менеджер ресурсов.

Зачем он нужен.

Представьте вы делаете. У вас есть несколько картинок ну штук пять. Например у вас есть пару звуков и вы даже до рассвета того чтобы сделать отдельный текстовое уровни для файлов. Как у вас организована работа с рисом. Ну вот есть где-то ссылка на бал имэйдж есть где-то ссылка на борт имеет где-то в ходе. Есть места наподобие — это то есть каждую картинку каждый из буквы инициалы ручной этот подход имеет право на жизнь, но лишь пока игра очень маленькая. Представьте, что вы стратегии. У вас есть 20 юнитов каждый Unit — это анимации 8 кадров уже получается 160 картинок не хило так загружать их руками да. А если юнитов 100. А если кадров на анимацию больше. И — это мы не учли остальные элементы деревья и так далее. Что же делать выход есть автоматизация давайте рассмотрим — это на примере менеджера картины одно из самых важных игре первый шаг — это упаковка текстур в атласе — это мы уже рассматривали идея заключается в следующем мы берём много маленьких картинок и делаем из них одну большую также мы делаем текстовый файл где описано. Где какая картинка лежит получается два файла. Ну может быть и больше. Потом мы используем примерно следующий код у такого подхода есть несколько приму помимо уменьшение кода на. Мне нужно инициализировать каждую картинку, а только атлас мы инициализируем. Где хранятся все наши картинки также упаковка картина quatros увеличивает производительность вот наш игра разрастается и картинок становится всё больше и больше мы покупаем не хватало создаем красивые и радуйся жизни. Вот пришёл момент и у нас стало 50 атласов. Сосново грузить всё вручную пришёл момент для очередного шага автоматизации давайте сделаем следующий раз папку определённом месте например vs Data Image Pack будем бросать туда все. Атлас и сделаем класс оболочку которому будем передавать два параметра имя атласа и он позаботится об отгрузке нужного атласа и поиска нужной картинки — это будет выглядеть примерно так так, что менеджер скрывается внутри всё абстракцию он ищет нужную атласы к вам остается только обращаться к ненужными картинками. Как можно ещё лучше в данный пример во-первых у вас очень много атласа вы не будете держать их все в памяти ваша видеокарта много не потянет. А если вы пишите на телефоны то там вообще всё плохо во-вторых подгрузка большого числа относятся в — это время загрузки 3. Может вам не понадобится. Астрахань поэтому нашему менеджеру картинок нужны следующие свойства первое возможность подгрузки лишь необходимых атласа второе ненужных атласов 3 пока с прогресса загрузки чтобы мы могли показать экран загрузки по которому было видно, что игра не зависала мужественно загружается. А вообще в идеале нужно реализовать ленивую загрузку картинок ленивая подгрузка — это загрузка нужного ресурсов в момент обращения к нему ленивый менеджер ресурсов — это такой менеджер который загружает ресурсы по факту и не раньше плюсы подхода очевидны. Мы заботимся про инициализацию. Ну просто. Обращаемся к вам менеджер как-то обрабатывает ваш запрос если ресурс не готов он грузит и выдаёт нам время загрузки игры сокращается кардинале грузится лишь то, что нужно для загрузки минусы такой менеджер сложнее также при первом обращении к ресурсу будет небольшой лак по камню погрузиться компромисс реализовать менеджер который позволит указать. Какие ресурсы. Нужно загрузить сразу, а какие будут ленивые когда мы сразу погрузили нужно например картинки для меню, а всё остальное для игрового экрана например будем грузить позже момент пока за того самого игрового экрана мы рассмотрели только картинки. Ну нам ничего не мешает сделать также со звуками с музыкой и так далее — это нужно автоматизировать тоже мы рассмотрим — это в дальнейших уроках автоматизация очень очень облегчает жизнь клип GTX есть такая штука называется менеджер он делает то, что мы описали. Но в нём есть и минусы он общий и поэтому слишком сложно для расширения использовать поэтому мы будем использовать свой менеджер ресурсов написанные автором этого урока, но я желаю вам удачи и до следующего урока.

0 комментариев
0

Читайте также