Предисловие.
При импорте спрайта в свой SGDK проект, обычно, поступают так:
- Закидывают спрайт в папку res/sprites.
- Прописывают название ресурса, путь до него, размер в тайлах, уровень компрессии в .res файл.
Многовато действий для 2-го шага, поэтому, я создал программу которая создает .res файлы автоматически и назвал её SGDKResCodeGen.
Как она работает?
Она, проверяет названия файлов в папках gfx, images, sounds и т.д., и на основе этих данных, создает .res файлы. Все что до «—» считается названием ресурса, все что после, отвечает за настройки ресурса.
Начинаем работать.
Сперва:
- Скачайте последнюю версию SGDKResCodeGen.
- Переместите её в папку res вашего SGDK проекта.
- Запустите её.
У вас появится несколько папок
Внутрь этих папок, вы будете добавлять нужные вам ресурсы. Например, добавим файл player-3_3_5.png в папку sprites. Скачать player-3_3_5.png с MEGA.
Теперь, снова запустите SGDKResCodeGen, и откройте sprites.res
SPRITE spr_player "sprites/player-3_3_5.png" 3 3 FAST 5
И что мы видим:
- Имя ресурса теперь «spr_» + имя файла до «—«
- Путь до ресурса создался автоматически
- Размер в тайлах по x,y, взят из имени файла (3_3)
- То же самое и с временем одного кадра в тиках. (5)
Т.е. импорт ресурсов сильно упрощается, потому-что:
- Вам больше не надо прописывать путь до ресурса
- Указывать его имя трижды (в названии файла, в названии ресурса, в пути до ресурса)
Спрайты, единственные ресурсы которые требуют подобной настройки, остальные, в большинстве случаев, можно просто закинуть в отведенную ему папку.
Также, если вы не будете указывать настройки (текст после «-«), то размер в тайлах посчитается автоматически, исходя из размера картинки.
За что каждая папка отвечает.
Отвечают они за:
- gfx — используется для карт (уровней) в формате png, генерирует ресурсы PALETTE, TILESET, MAP, которые связаны друг с другом.
- images — хранит картинки в формате png, создает ресурсы IMAGE
- music — используется для музыки в формате vgm и wav, создает ресурсы XGM и WAV в зависимости от типа файла.
- palette — хранит палитру в формате png или pal, создает ресурсы PALETTE.
- sound — хранит звуки в формате wav, создает WAV ресурсы.
- sprites — хранит картинки в формате png, создает SPRITE ресурсы.
- tilesets — хранит картинки в формате png, создает TILESET ресурсы.
Программа классная но…
У программы открытый исходный код, вы всегда можете изменить её под себя.
А есть пример использования?
Есть, находится здесь.
О создании программы.
Изначально, эта программа была частью другой программы написанной на Flutter. Я хотел создать программу для упрощения разработки, она использовала данные с .ldtk файла, и, на основе их, генерировала код локаций. Также, там можно было выбирать уровень оптимизации, включать/выключать читы. Данная программа была жутко багованная, и по сути, была формой с настройками. Я вырезал код SGDKResCodeGen из той программы и выложил на github.
Позже, я на игровом движке Godot написал PlatformerStudioforSGDK, идея та же, но реализация намного лучше чем у оригинала. Это, все тот же генератор кода, но не требующий .ldtk файла, расстановка врагов, установка карты коллизии, все это делается в самой студии. А еще, эта студия использует SGDKResCodeGen для импорта ресурсов.