Инструменты пользователя

Инструменты сайта


help:qspider_gamecfg

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:qspider_gamecfg [2023/01/03 16:30]
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|Взаимодействие с интерфейсом]]. 
 +  * **defaultTheme** — в этом параметре указывается тема, используемая по умолчанию. См. [[help:​qspider_interface|Взаимодействие с интерфейсом]]. 
 +  * **save_slots** — в этом параметре указывается доступное игроку для сохранений число слотов
  
 Для десктопной версии плеера все параметры,​ кроме "​id",​ не обязательны. Тем не менее рекомендуется их проставлять для удобства чтения конфигурационного файла. Для игр, написанных для AeroQSP, параметр "​mode"​ обязателен. Для десктопной версии плеера все параметры,​ кроме "​id",​ не обязательны. Тем не менее рекомендуется их проставлять для удобства чтения конфигурационного файла. Для игр, написанных для AeroQSP, параметр "​mode"​ обязателен.
Строка 48: Строка 67:
 Далее каждая секция игры может содержать подсекции,​ расширяющие возможности управления плеером и игрой. Далее каждая секция игры может содержать подсекции,​ расширяющие возможности управления плеером и игрой.
  
-===== Назначение горячих клавиш [game.hotkeys] ​=====+==== Назначение горячих клавиш [game.hotkeys] ====
  
-Для каждой игры можно назначить собственные комбинации горячих клавиш. Для этого в секции игры прописываем подсекцию с заголовком ''​**%%[game.hotkeys]%%**''​. После заголовка перечисляем клавиши или их сочетания в качестве ключей,​ а в качестве значений прописываем названия локаций,​ код которых будет выполнен при нажатии на горячие клавиши. Пример:​+Для каждой игры можно назначить собственные комбинации горячих клавиш. Для этого в секции игры прописываем подсекцию с заголовком ''​%%[game.hotkeys]%%''​. После заголовка перечисляем клавиши или их сочетания в качестве ключей,​ а в качестве значений прописываем названия локаций,​ код которых будет выполнен при нажатии на горячие клавиши. Пример:​
  
 <sxh> <sxh>
Строка 79: Строка 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>
Строка 128: Строка 147:
 </​sxh>​ </​sxh>​
  
-Для подключения css-файлов используем ключ "''​styles''",​ значением которого выступает список ссылок на необходимые нам файлы css. Это могут быть как внешние ссылки,​ так и пути относительно файла "''​game.cfg''"​.+=== CSS === 
 + 
 +Для подключения css-файлов используем ключ "''​%%styles%%''",​ значением которого выступает список ссылок на необходимые нам файлы css. Это могут быть как внешние ссылки,​ так и пути относительно файла "''​%%game.cfg%%''"​.
  
 Список обязательно помещается в квадратные скобки! Его элементы разделяются запятыми. Отступы между элементами и скобками ни на что не влияют. За последним значением списка нельзя ставить запятую. Пример:​ Список обязательно помещается в квадратные скобки! Его элементы разделяются запятыми. Отступы между элементами и скобками ни на что не влияют. За последним значением списка нельзя ставить запятую. Пример:​
Строка 136: Строка 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>
Строка 146: Строка 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>
Строка 168: Строка 193:
 </​sxh>​ </​sxh>​
  
-Параметр "''​icon''"​ дает возможность заменить иконку во вкладке браузера,​ так называемый "​favicon"​. По умолчанию там находится логотип QSP. Пример использования:​+=== FavIcon === 
 + 
 +Параметр "''​%%icon%%''"​ дает возможность заменить иконку во вкладке браузера,​ так называемый "​favicon"​. По умолчанию там находится логотип QSP. Пример использования:​
  
 <sxh> <sxh>
Строка 174: Строка 201:
 </​sxh>​ </​sxh>​
  
-===== Поддержка игр AeroQSP [game.aero] ​=====+==== Поддержка игр AeroQSP [game.aero] ====
  
-Как было сказано выше, для того, чтобы запускать AeroQSP-игру,​ нужно в секции игры выставить параметр "''​mode''":​+Для того, чтобы запускать AeroQSP-игру,​ нужно в секции игры выставить параметр "''​%%mode%%''":​
  
 <sxh> <sxh>
Строка 182: Строка 209:
 </​sxh>​ </​sxh>​
  
-Так же, если используется размер игры, отличающийся от дефолтного 800х600, необходимо добавить секцию ''​**%%[game.aero]%%**''​ с размерами:​+Так же, если используется размер игры, отличающийся от дефолтного 800х600, необходимо добавить секцию ''​%%[game.aero]%%''​ с размерами:​
  
 <sxh> <sxh>
Строка 192: Строка 219:
 Смотрите так же раздел [[help:​qspider_aeroqsp|"​Особенности работы игр AeroQSP на qSpider"​]] Смотрите так же раздел [[help:​qspider_aeroqsp|"​Особенности работы игр AeroQSP на qSpider"​]]
  
-===== Настройка окна desktop-плеера [game.window] ​=====+==== Настройка окна desktop-плеера [game.window] ====
  
-Вы можете настраивать окно плеера в десктопной версии. Для этого в основной секции игры нужно объявить подсекцию с заголовком ''​**%%[game.window]%%**'',​ и проставить необходимые параметры:​+Вы можете настраивать окно плеера в десктопной версии. Для этого в основной секции игры нужно объявить подсекцию с заголовком ''​%%[game.window]%%'',​ и проставить необходимые параметры:​
  
 <sxh> <sxh>
Строка 205: Строка 232:
 </​sxh>​ </​sxh>​
  
- * **width** и **height** задают размер окна при старте игры; +  ​* **width** и **height** задают размер окна при старте игры; 
- * **minWidth** и **minHeight** дают возможность задать минимально возможные размеры,​ если игрок попытается изменить размеры окна; +  * **minWidth** и **minHeight** дают возможность задать минимально возможные размеры,​ если игрок попытается изменить размеры окна; 
- * **resizable** — позволяет запретить изменения размера в принципе (автоматически включается в aero-режиме).+  * **resizable** — позволяет запретить изменения размера в принципе (автоматически включается в aero-режиме).
  
 ===== Пример файла "​game.cfg"​ для отдельной игры ===== ===== Пример файла "​game.cfg"​ для отдельной игры =====
Строка 226: Строка 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"​
Строка 241: Строка 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]]
  
help/qspider_gamecfg.1672763402.txt.gz · Последние изменения: 2023/01/03 16:30 — aleks_versus