Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:qspider_gamecfg [2024/03/12 16:28] aleks_versus |
help:qspider_gamecfg [2024/10/14 13:33] (текущий) aleks_versus обновление 5.9.0 |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
====== Конфигурационный файл ====== | ====== Конфигурационный файл ====== | ||
- | Конфигурационный файл "''game.cfg''" определяет поведение плеера во время запуска той или иной игры. | + | Конфигурационный файл "''%%game.cfg%%''" определяет поведение плеера во время запуска той или иной игры. |
- | Данный файл нужно размещать рядом с файлом "''.qsp''" запускаемой игры. Если игра упакована в архив "''.zip''" или "''.aqsp''", конфигурационный файл должен быть упакован в тот же самый архив рядом с файлом "''.qsp''" самого верхнего уровня. | + | Данный файл нужно размещать рядом с файлом "''%%.qsp%%''" запускаемой игры. |
- | Для web-версии плеера можно написать один конфигурационный файл для всех игр и разместить его в папке "''game''", при этом конфигурационные файлы, которые находятся рядом с файлами игр, будут иметь приоритет над общим. | + | * Если игра упакована в архив "''%%.zip%%''" или "''%%.aqsp%%''", конфигурационный файл должен быть упакован в тот же самый архив рядом с файлом "''%%.qsp%%''" самого верхнего уровня. |
- | Конфигурационный файл (конфиг, конфиг-файл) состоит из секций, каждая из которых описывает одну игру. Таким образом в конфиге должна быть хотя бы одна секция, описывающая игру. Для десктопной версии плеера в конфиге указывается только одна секция игры. | + | Для web-версии плеера можно написать один конфигурационный файл для всех игр и разместить его в папке "''%%game%%''", при этом конфигурационные файлы, которые находятся рядом с файлами игр, будут иметь приоритет над общим. |
- | Секция, описывающая игру, начинается с заголовка ''**%%[[game]]%%**'' и заканчивается там, где начинается следующая секция, описывающая игру, либо заканчивается с концом файла. Заголовок секции пишется отдельной строкой. Структура конфиг-файла для трёх игр в браузерной версии плеера может выглядеть примерно так: | + | **Внимание!** Запускаться в web-версии плеера будет только первая игра, описанная в конфигурационном файле. Поэтому если вы хотите дать игрокам возможность запускать несколько игр, размещённых у вас на сайте, первую запускаемую игру сделайте в виде каталога или launcher'а. В качестве примера смотрите [[https://aleksversus.github.io/QSP-storage/|Хранилище QSP-игр]]. |
+ | |||
+ | ===== Структура конфигурационного файла ===== | ||
+ | |||
+ | Конфигурационный файл (конфиг, конфиг-файл) состоит из секций, каждая из которых описывает одну игру. Таким образом в конфиге должна быть хотя бы одна секция, описывающая игру. | ||
+ | |||
+ | * Для десктопной версии плеера в конфиге указывается только одна секция игры. | ||
+ | * Для стандалон-сборки имеет смысл указывать только одну секцию игры. | ||
+ | * Несколько игр в конфиге нужно указывать, если игры распространяются пакетом (в виде сборника). | ||
+ | |||
+ | ==== Описание игры ==== | ||
+ | |||
+ | Секция, описывающая игру, начинается с заголовка ''%%[[game]]%%'' и заканчивается там, где начинается следующая секция, описывающая игру, либо заканчивается с концом файла. | ||
+ | |||
+ | Заголовок секции пишется отдельной строкой. | ||
+ | |||
+ | Структура конфиг-файла для трёх игр может выглядеть примерно так: | ||
<sxh> | <sxh> | ||
Строка 34: | Строка 50: | ||
</sxh> | </sxh> | ||
- | Как видно из приведённого примера, следом за заголовком секции идёт ряд параметров. Сначала записывается название параметра (ключ), затем ставится знак равенства, а после в кавычках указывается значение параметра. Если значение пишется в несколько строк, оно помещается в тройные кавычки. | + | Как видно из приведённого примера, следом за заголовком секции идёт ряд параметров. Сначала записывается название параметра (ключ), затем ставится знак равенства, а после в кавычках (или без них, если это число) указывается значение параметра. Если значение пишется в несколько строк, оно помещается в тройные кавычки. |
Для описания игры используются следующие параметры, ключи: | Для описания игры используются следующие параметры, ключи: | ||
- | * **id** — уникальный идентификатор игры (используется для сохранений, поэтому технически можно использовать любой набор символов, однако лучше сгенерировать собственный уникальный айди по образцу из примера, воспользовавшись онлайн-генератором [[https://www.uuidgenerator.net|https://www.uuidgenerator.net]]); | + | * **id** — уникальный идентификатор игры (используется для сохранений, поэтому технически можно использовать любой набор символов, однако лучше сгенерировать собственный уникальный айди по образцу из примера, воспользовавшись онлайн-генератором https://www.uuidgenerator.net); |
- | * **title** — название игры (будет показано в заголовке плеера и на вкладке браузера); | + | * **title** — название игры (будет показано в заголовке плеера и на вкладке браузера); |
- | * **description** — необязательное краткое описание игры, аннотация; | + | * **description** — необязательное краткое описание игры, аннотация; |
- | * **file** — путь к файлу с игрой относительно файла "game.cfg", или внешняя ссылка (например ''file = "%%https://qspfoundation.github.io/qspider/game/skazka/skazka.qsp%%"'', для браузерной версии; | + | * **file** — путь к файлу с игрой относительно файла "game.cfg", или внешняя ссылка (например ''%%file = "https://qspfoundation.github.io/qspider/game/skazka/skazka.qsp"%%'', для браузерной версии; |
- | * **mode** — если ваша игра написана для AeroQSP, данному параметру назначается значение "aero". | + | * **mode** — если ваша игра написана для AeroQSP, данному параметру назначается значение "aero". |
- | * **themes** — в этом параметре перечисляются кастомные темы оформления. См. [[help:qspider_interface|Взаимодействие с интерфейсом]]. | + | * **themes** — в этом параметре перечисляются кастомные темы оформления. См. [[help:qspider_interface|Взаимодействие с интерфейсом]]. |
- | * **defaultTheme** — в этом параметре указывается тема, используемая по умолчанию. См. [[help:qspider_interface|Взаимодействие с интерфейсом]]. | + | * **defaultTheme** — в этом параметре указывается тема, используемая по умолчанию. См. [[help:qspider_interface|Взаимодействие с интерфейсом]]. |
+ | * **save_slots** — в этом параметре указывается доступное игроку для сохранений число слотов | ||
Для десктопной версии плеера все параметры, кроме "id", не обязательны. Тем не менее рекомендуется их проставлять для удобства чтения конфигурационного файла. Для игр, написанных для AeroQSP, параметр "mode" обязателен. | Для десктопной версии плеера все параметры, кроме "id", не обязательны. Тем не менее рекомендуется их проставлять для удобства чтения конфигурационного файла. Для игр, написанных для AeroQSP, параметр "mode" обязателен. | ||
Строка 50: | Строка 67: | ||
Далее каждая секция игры может содержать подсекции, расширяющие возможности управления плеером и игрой. | Далее каждая секция игры может содержать подсекции, расширяющие возможности управления плеером и игрой. | ||
- | ===== Назначение горячих клавиш [game.hotkeys] ===== | + | ==== Назначение горячих клавиш [game.hotkeys] ==== |
- | Для каждой игры можно назначить собственные комбинации горячих клавиш. Для этого в секции игры прописываем подсекцию с заголовком ''**%%[game.hotkeys]%%**''. После заголовка перечисляем клавиши или их сочетания в качестве ключей, а в качестве значений прописываем названия локаций, код которых будет выполнен при нажатии на горячие клавиши. Пример: | + | Для каждой игры можно назначить собственные комбинации горячих клавиш. Для этого в секции игры прописываем подсекцию с заголовком ''%%[game.hotkeys]%%''. После заголовка перечисляем клавиши или их сочетания в качестве ключей, а в качестве значений прописываем названия локаций, код которых будет выполнен при нажатии на горячие клавиши. Пример: |
<sxh> | <sxh> | ||
Строка 81: | Строка 98: | ||
Можно использовать следующие обозначения: | Можно использовать следующие обозначения: | ||
- | ==== Клавиши-модификаторы ==== | + | === Клавиши-модификаторы === |
- | * **shift** | + | * **shift** |
- | * **ctrl** | + | * **ctrl** |
- | * **alt** | + | * **alt** |
- | * **meta** — для поддержки на macOs лучше использовать этот модификатор вместо ctrl | + | * **meta** — для поддержки на macOs лучше использовать этот модификатор вместо ctrl |
- | ==== Специальные клавиши ==== | + | === Специальные клавиши === |
- | * **backspace** | + | * **backspace** |
- | * **tab** | + | * **tab** |
- | * **enter** | + | * **enter** |
- | * **capslock** | + | * **capslock** |
- | * **esc** | + | * **esc** |
- | * **space** | + | * **space** |
- | * **pageup** | + | * **pageup** |
- | * **pagedown** | + | * **pagedown** |
- | * ''**END**'' | + | * **end** |
- | * **home** | + | * **home** |
- | * **left** | + | * **left** |
- | * **up** | + | * **up** |
- | * **right** | + | * **right** |
- | * **down** | + | * **down** |
- | * **ins** | + | * **ins** |
- | * **del** | + | * **del** |
- | * **plus** | + | * **plus** |
- | * **f1** - **f19** | + | * **f1** - **f19** |
- | Остальные клавиши можно определять просто по символу **a**, **$**, *****, или **=**. | + | Остальные клавиши можно определять просто по символу ''%%a%%'', ''%%$%%'', ''%%*%%'', или ''%%=%%''. |
- | ===== Подключение дополнительных ресурсов [game.resources] ===== | + | ==== Подключение дополнительных ресурсов [game.resources] ==== |
- | Есть возможность подключить к каждой отдельной игре дополнительные ресурсы. Например, собственные css-файлы, скрипты, шрифты и т.д. Для этого в секции игры нужно создать подсекцию с заголовком ''**%%[game.resources]%%**''. Пример: | + | Есть возможность подключить к каждой отдельной игре дополнительные ресурсы. Например, собственные css-файлы, скрипты, шрифты и т.д. Для этого в секции игры нужно создать подсекцию с заголовком ''%%[game.resources]%%''. Пример: |
<sxh> | <sxh> | ||
Строка 130: | Строка 147: | ||
</sxh> | </sxh> | ||
- | Для подключения css-файлов используем ключ "''styles''", значением которого выступает список ссылок на необходимые нам файлы css. Это могут быть как внешние ссылки, так и пути относительно файла "''game.cfg''". | + | === CSS === |
+ | |||
+ | Для подключения css-файлов используем ключ "''%%styles%%''", значением которого выступает список ссылок на необходимые нам файлы css. Это могут быть как внешние ссылки, так и пути относительно файла "''%%game.cfg%%''". | ||
Список обязательно помещается в квадратные скобки! Его элементы разделяются запятыми. Отступы между элементами и скобками ни на что не влияют. За последним значением списка нельзя ставить запятую. Пример: | Список обязательно помещается в квадратные скобки! Его элементы разделяются запятыми. Отступы между элементами и скобками ни на что не влияют. За последним значением списка нельзя ставить запятую. Пример: | ||
Строка 138: | Строка 157: | ||
</sxh> | </sxh> | ||
- | К основным элементам интерфейса добавлен атрибут ''data-qsp'' (например, ''data-qsp="main"'', ''data-qsp="actions"'' и т.д.), который позволит вам стилизовать данные элементы, или взаимодействовать с ними через скрипты. | + | К основным элементам интерфейса добавлен атрибут ''%%data-qsp%%'' (например, ''%%data-qsp="main"%%'', ''%%data-qsp="actions"%%'' и т.д.), который позволит вам стилизовать данные элементы, или взаимодействовать с ними через скрипты. |
- | Для подключения JavaScript используется ключ "''scripts''". Его значением так же выступает список ссылок на нужные скрипты. Поскольку нет возможности автоматически удалить JS код из памяти (при переключении на другую игру, например) — это надо делать вручную. Подробнее об этом можно почитать в [[https://ifhub.club/2021/05/23/qspider-0100.html|статье Werewolf-а, посвящённой выходу qSpider 0.10.0]]. | + | === JavaScript === |
- | Пример подключения скриптов: | + | Для подключения JavaScript используется ключ "''%%scripts%%''". Его значением так же выступает список ссылок на нужные скрипты. Поскольку нет возможности автоматически удалить JS код из памяти (при переключении на другую игру, например) — это надо делать вручную. Подробнее об этом можно почитать в [[https://ifhub.club/2021/05/23/qspider-0100.html|статье Werewolf-а, посвящённой выходу qSpider 0.10.0]]. |
+ | |||
+ | **Пример подключения скриптов:** | ||
<sxh> | <sxh> | ||
Строка 148: | Строка 169: | ||
</sxh> | </sxh> | ||
- | Ключ "''fonts''" предназначен для подключения шрифтов к игре. Его значением является список, элементами которого являются другие списки — каждый такой отвечает за подключение одного шрифта. Пример подключения: | + | === fonts === |
+ | |||
+ | Ключ "''%%fonts%%''" предназначен для подключения шрифтов к игре. Его значением является список, элементами которого являются другие списки — каждый такой отвечает за подключение одного шрифта. Пример подключения: | ||
<sxh> | <sxh> | ||
fonts=[ | fonts=[ | ||
- | ["GoodVibesPro","skins/fonts/good-vibes-pro.woff2"], | + | ["GoodVibesPro","skins/fonts/good-vibes-pro.woff2"], |
- | ["AstronBold","skins/fonts/astron-bold.woff2"] | + | ["AstronBold","skins/fonts/astron-bold.woff2"] |
] | ] | ||
</sxh> | </sxh> | ||
- | Как видите, в данном примере подключаются два шрифта. Здесь "''GoodVibesPro''" и "''AstronBold''" — это имена шрифтов, которые вы можете использовать при стилизации текста в вашей игре. Вы можете сами назначать эти имена. Вторым элементом для каждого из шрифтов указывается путь к конкретному файлу шрифта. Рекомендуемый формат — ''woff2'', он поддерживается всеми современными браузерами. В сети полно онлайн конверторов из ''ttf'' в ''woff2''. | + | Как видите, в данном примере подключаются два шрифта. Здесь "''%%GoodVibesPro%%''" и "''%%AstronBold%%''" — это имена шрифтов, которые вы можете использовать при стилизации текста в вашей игре. Вы можете сами назначать эти имена. Вторым элементом для каждого из шрифтов указывается путь к конкретному файлу шрифта. Рекомендуемый формат — ''%%woff2%%'', он поддерживается всеми современными браузерами. В сети полно онлайн конверторов из ''%%ttf%%'' в ''%%woff2%%''. |
- | Если у шрифта есть **Bold**, //Italic// и //**BoldItalic**// варианты в отдельных файлах, то подключение может выглядеть так: | + | Если у шрифта есть **Bold**, //Italic// и **//BoldItalic//** варианты в отдельных файлах, то подключение может выглядеть так: |
<sxh> | <sxh> | ||
Строка 170: | Строка 193: | ||
</sxh> | </sxh> | ||
- | Параметр "''icon''" дает возможность заменить иконку во вкладке браузера, так называемый "favicon". По умолчанию там находится логотип QSP. Пример использования: | + | === FavIcon === |
+ | |||
+ | Параметр "''%%icon%%''" дает возможность заменить иконку во вкладке браузера, так называемый "favicon". По умолчанию там находится логотип QSP. Пример использования: | ||
<sxh> | <sxh> | ||
Строка 176: | Строка 201: | ||
</sxh> | </sxh> | ||
- | ===== Поддержка игр AeroQSP [game.aero] ===== | + | ==== Поддержка игр AeroQSP [game.aero] ==== |
- | Для того, чтобы запускать AeroQSP-игру, нужно в секции игры выставить параметр "''mode''": | + | Для того, чтобы запускать AeroQSP-игру, нужно в секции игры выставить параметр "''%%mode%%''": |
<sxh> | <sxh> | ||
Строка 184: | Строка 209: | ||
</sxh> | </sxh> | ||
- | Так же, если используется размер игры, отличающийся от дефолтного 800х600, необходимо добавить секцию ''**%%[game.aero]%%**'' с размерами: | + | Так же, если используется размер игры, отличающийся от дефолтного 800х600, необходимо добавить секцию ''%%[game.aero]%%'' с размерами: |
<sxh> | <sxh> | ||
Строка 194: | Строка 219: | ||
Смотрите так же раздел [[help:qspider_aeroqsp|"Особенности работы игр AeroQSP на qSpider"]] | Смотрите так же раздел [[help:qspider_aeroqsp|"Особенности работы игр AeroQSP на qSpider"]] | ||
- | ===== Настройка окна desktop-плеера [game.window] ===== | + | ==== Настройка окна desktop-плеера [game.window] ==== |
- | Вы можете настраивать окно плеера в десктопной версии. Для этого в основной секции игры нужно объявить подсекцию с заголовком ''**%%[game.window]%%**'', и проставить необходимые параметры: | + | Вы можете настраивать окно плеера в десктопной версии. Для этого в основной секции игры нужно объявить подсекцию с заголовком ''%%[game.window]%%'', и проставить необходимые параметры: |
<sxh> | <sxh> | ||
Строка 207: | Строка 232: | ||
</sxh> | </sxh> | ||
- | * **width** и **height** задают размер окна при старте игры; | + | * **width** и **height** задают размер окна при старте игры; |
- | * **minWidth** и **minHeight** дают возможность задать минимально возможные размеры, если игрок попытается изменить размеры окна; | + | * **minWidth** и **minHeight** дают возможность задать минимально возможные размеры, если игрок попытается изменить размеры окна; |
- | * **resizable** — позволяет запретить изменения размера в принципе (автоматически включается в aero-режиме). | + | * **resizable** — позволяет запретить изменения размера в принципе (автоматически включается в aero-режиме). |
===== Пример файла "game.cfg" для отдельной игры ===== | ===== Пример файла "game.cfg" для отдельной игры ===== | ||
Строка 228: | Строка 253: | ||
styles = ["skins/qspidergame.css"] | styles = ["skins/qspidergame.css"] | ||
fonts=[ | fonts=[ | ||
- | ["GoodVibesPro","skins/fonts/good-vibes-pro.woff2"], | + | ["GoodVibesPro","skins/fonts/good-vibes-pro.woff2"], |
- | ["AstronBold","skins/fonts/astron-bold.woff2"] | + | ["AstronBold","skins/fonts/astron-bold.woff2"] |
] | ] | ||
icon="skins/gfx/doctor.png" | icon="skins/gfx/doctor.png" | ||
Строка 243: | Строка 268: | ||
===== Другие статьи по qSpider ===== | ===== Другие статьи по qSpider ===== | ||
- | * [[help:qspider|qSpider — общая информация]] | + | * [[help:qspider|qSpider — общая информация]] |
- | * [[help:qspider_aeroqsp|Особенности запуска и работы игр AeroQSP на qSpider]] | + | * [[help:qspider_aeroqsp|Особенности запуска и работы игр AeroQSP на qSpider]] |
+ | * [[help:qspider_interface|Взаимодействие с интерфейсом]] | ||
+ | * [[help:qspider_themes|Темы оформления]] | ||
+ | * [[help:qspider_spectags|Специальные теги]] | ||
+ | * [[help:qspider_inclib|Встроенная библиотека]] | ||
+ | * [[help:qspider_standalone|Стандалон-сборка игры на qSpider]] | ||