Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

2    0    #1
15.08.2019 17:14

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Мультимедийные возможности Inform

В продолжение темы «мобильной разработки», ну, и, так сказать, чтобы не забылось расскажу как добавить в игру картинки, если под рукой не оказалось Inform Toolchain или у вас отличная от Windows ОС.

Большинство современных интерпретаторов, работающих с z- и glulx-файлами умеют воспроизводить аудиофайлы и изображения, но, предварительно, они должны быть упакованы в специальный пакетный файл, т.н. «blorb».

Для работы нам понадобятся следующие инструменты:


  • Набор утилит Inform-Blorb (iblorb) для DOS/Windows. Можно скачать с официального сайта, который уже/пока что в архиве интернета, либо из архива ИЛ. Я брал первый вариант.
  • Эмулятор DOS, например, DosBox (на Android, лично мне, нравится FreeBox).
  • Ещё нам может пригодиться CWSDPMI server, если в процессе работы возникнет ошибка «no DPMI». В этом случае надо будет распаковать, содержащиеся в архиве файлы, в директорию с iblorb.

Процедура «блорбификации», т.е. упаковки ресурсов и игры в пакетный файл состоит из следующих шагов:


  1. В папке с iblorb создаём текстовый файл — т.н. «файл ресурсов». Назовите его так же как ваш исходный файл, но с расширением «.res». В нём следует указать файлы, которые должны попасть в наш blorb. Пример файла ресурсов:

    Код:

    CODE C:\IF\Glulx\chef.ulx
    
    PICTURE Monkey C:\Graphics\macaque2.jpg
    
    PICTURE Stapler C:\Graphics\Drawings\stapler.png

    В первой строке, после ключевого слова CODE указываем путь к скомпилированному игровому файлу (это может быть не обязательно glulx-, но и z-файл). Указывайте путь к файлу в зависимости от внутреннего представления файловой системы в эмуляторе DOS, а не от его расположения в вашей ОС (обращайте внимание на точку монтирования диска, помните о максимальной длине имени файла равной 8 символам (без учёта расширения), используйте обратные слэши вместо прямых и т.д.).

    Во второй строке, после ключевого слова PICTURE, которое говорит программе, что данный ресурс является изображением, задаём имя ресурса (произвольное имя, нужно для удобства дальнейшей работы с ним. Блорбификатор создаст константу с этим именем и присвоит ей численное значение в соответствии с индексом ресурса в пакете).

    Последний параметр — путь к ресурсу.

    Стоит заметить, что blorb может содержать файлы изображений только двух форматов: PNG и JPEG. В процессе блорбификации ресурсы не сжимаются.

    Про дополнительные настройки res-файла можно прочитать в файле front.txt, который входит в пакет iblorb.



  2. Запускаем эмулятор DOS, переходим в папку с утилитами iblorb и вводим следующую команду:

    Код:

    bres <имя res-файла без расширения>

    В папке с iblorb должны появиться два новых файла с именами, как у нашего res-файла, но с расширениями «.blc» и «.bli». Нас интересует последний.

  3. Если открыть bli-файл, то в нём мы найдём константы с именами ресурсов, которые мы задали в шаге 1:

    Код:

    Constant Monkey 3;...
    Constant Stapler 4;...

    В принципе, вы можете включить данный файл

    Код:

    include "<имя файла>.bli";

    в свой исходный код, как это указано в руководстве, либо просто скопируйте в него константы со значениями.

  4. Для работы с GLK API нужно подключить заголовочный файл infglk.h:

    Код:

    include "infglk";

  5. Изображение может быть вставлено в текст, либо выведено в определенную область экрана. Добавим следующую функцию в то место в тексте, где должно появиться наше изображение:

    Код:

    glk_image_draw(gg_mainwin, Monkey, imagealign_InlineUp, 0);

    Обратите внимание на второй аргумент функции — это константа, взятая нами из bli-файла. Она содержит индекс нужного нам ресурса (изображения). Обо всех параметрах данной функции можно прочитать в руководстве Адама Кадре.

  6. После того, как мы внесли в исходный файл необходимые изменения, необходимо его скомпиллировать.
  7. Теперь, когда у нас есть скомпилированный файл, изображения и файл ресурсов, можно приступать к блорбификации. Открываем DOS-эмулятор, переходим в каталог с iblorb, и вводим команду:

    Код:

    front <имя res-файла без расширения>


У нас должен появиться blb-файл, содержащий скомпилированную игру и изображения, которые мы в него включили. Можете открыть свой любимый интерпретатор и запустить его.

Дополнительные материалы по теме:

Неактивен

1    0    #2
15.08.2019 18:40

Nikita
Модератор (+404, -135)
Зарегистрирован: 29.10.2016
Сообщений: 139

Re: Мультимедийные возможности Inform

johnbrown написал:

…если под рукой не оказалось Inform Toolchain или у вас отличная от Windows ОС.

В Inform Toolchain работа с Blorb реализована при помощи Gblorb, написанного на Inform, так что можно взять его отдельно и использовать на других операционных системах, запуская в подходящем интерпретаторе Glulx. Инструкцию по работе можно прочитать в самом Gblorb. Существует русская и английская версия. Ссылки есть на IFВики.

Ещё есть упаковщики и распаковщики Blorb в виде скриптов на Perl, но это уже для эстетов.

Неактивен

0    0    #3
15.08.2019 21:44

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Мультимедийные возможности Inform

Спасибо. Не знал про Gblorb. Удобно, конечно, и кроссплатформенно, но не полностью поддерживает blorb, хотя основною задачу выполняет, да.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru