Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
|
help:qspider_interface [2024/03/13 07:16] aleks_versus |
help:qspider_interface [2025/09/09 10:55] (текущий) aleks_versus |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| **qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой. | **qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой. | ||
| - | Вы можете создавать свои темы оформления, управлять отдельными элементами, и связывать код игры с событиями плеера (клик, двойной клик, наведение курсора). | + | Управление интерфейсом и HTML-разметкой из кода игры осуществляется с помощью [[help:qspider_inclib|встроенной в плеер библиотеки]] "''qspider''". Чтобы воспользоваться этой библиотекой, необходимо подключить её в начале игры, как обычный модуль QSP: |
| - | Управление интерфейсом и HTML-разметкой из кода игры осуществляется с помощью встроенной в плеер библиотеки "''qspider''". Чтобы воспользоваться этой библиотекой, необходимо подключить её в начале игры, как обычный модуль QSP: | ||
| <sxh qsp> | <sxh qsp> | ||
| inclib 'qspider' | inclib 'qspider' | ||
| </sxh> | </sxh> | ||
| - | ===== Темы оформления ===== | + | В **qSpider** вы можете: |
| - | qSpider позволяет вам писать собственные темы оформления, которые затем можно переключать прямо из кода игры. Таким образом вы можете написать несколько тем для различных нужд, и включать их по мере необходимости. | + | * Создавать собственные [[help:qspider_themes|темы оформления]] и управлять ими. |
| + | * Взаимодействовать с HTML через [[help:qspider_spectags|специальные теги]]. | ||
| + | * [[#Привязка элементов HTML-форм к QSP-переменным|Связывать элементы форм HTML]] со значениями переменных QSP. | ||
| + | * [[#Вызов QSP-кода по событию в плеере|Вызывать код QSP по событию]] в браузере (плеере). | ||
| + | * [[#Вызов команд плеера|Вызывать встроенную команду плеера]] при клике по HTML-элементу. | ||
| - | Например, у вас могут быть различные темы для локаций-помещений и локаций-пустошей. У вас могут быть отдельные темы для локаций-страниц, где вы представляете информацию об игре. Можно оформить темы для визуализации чтения книг, взаимодействия с хранилищами и так далее. | + | ===== Привязка элементов HTML-форм к QSP-переменным ===== |
| - | Отделение интерфейса от кода игры — это полезная практика, позволяющая разнести оформление и логику. Так код становится более читаемым и понятным. | + | В **qSpider** Элементы HTML-форм (''%%input%%'', ''%%select%%'', ''%%textarea%%'' и др.) можно связать с QSP-переменной. Для этого нужно использовать специальный атрибут ''qsp-bind''. |
| - | Тема в qSpider представляет собой HTML-код, где для каждого элемента плеера используется свой HTML-тег. | + | Связь двунаправленая — изменение переменной обновит элемент и изменение элемента (ввод текста или выбор опции) записываются в переменную. |
| - | ==== Создание тем ==== | + | Примеры использования атрибута ''qsp-bind'': |
| - | Свою тему вы можете создать, модифицируя шаблон одной из встроенных тем: | + | <sxh html> |
| - | * [[https://github.com/QSPFoundation/qspider/blob/master/public/themes/classic.html|Классическая]] | + | <input type="text" qsp-bind="$username"> |
| - | * [[https://github.com/QSPFoundation/qspider/blob/master/public/themes/aero.html|Aero]] | + | <input type="password" qsp-bind="$form_password"> |
| + | <input type="color" value="#e66465" qsp-bind="$color"> | ||
| + | <input type="checkbox" value="1" qsp-bind="enable"> | ||
| + | <select qsp-bind="$car"> | ||
| + | <option value="mercedes">Mercedes</option> | ||
| + | <option value="audi">Audi</option> | ||
| + | </select> | ||
| + | </sxh> | ||
| - | Если вы когда-нибудь стилизовали HTML-разметку с помощью CSS, отредактировать тему для вас не составит труда. | + | Это позволяет быстрее и проще создавать собственные диалоговые окна для взаимодействия с игроком. |
| - | Обратите внимание на первые строки темы (ниже пример из встроенной классической темы): | + | ===== Вызов QSP-кода по событию в плеере ===== |
| + | |||
| + | Вы можете вызывать код QSP при определённых событиях в плеере с помощью новых атрибутов, начинающихся с префикса ''qsp-on:''. | ||
| + | |||
| + | Поддерживаются следующие атрибуты: | ||
| + | |||
| + | * ''qsp-on:click'' — одинарный клик | ||
| + | * ''qsp-on:dblclick'' — двойной клик | ||
| + | * ''qsp-on:contextmenu'' — клик правой кнопкой | ||
| + | * ''qsp-on:mouseenter'' — наведение курсора | ||
| + | * ''qsp-on:mouseleave'' — выход курсора за пределы элемента | ||
| + | |||
| + | Содержимым атрибутов должен быть валидный код QSP. Примеры использования атрибутов: | ||
| <sxh html> | <sxh html> | ||
| - | <qspider-theme name="qspider:classic"> | + | <div qsp-on:click="exec: msg 'click'" qsp-on:dblclick="exec: msg 'dblclick'">Click me</div> |
| - | <css-link src="qspider:themes/common.css"></css-link> | + | <div qsp-on:contextmenu="exec: menu '$context_menu'">Right Click me</div> |
| - | <css-link src="qspider:themes/classic.css"></css-link> | + | <div qsp-on:mouseenter="exec: pl 'enter'" qsp-on:mouseleave="exec: pl 'leave'">Hover me</div> |
| </sxh> | </sxh> | ||
| - | В теге ''qspider-theme'' в атрибуте ''name'' указывается название темы. Именно это название в дальнейшем будет использоваться для указания темы по умолчанию и при переключении тем. | + | ===== Вызов команд плеера ===== |
| - | Префикс ''qspider:'' в этом атрибуте указывает на то, что тема встроена в плеер, а значит qSpider будет искать эту тему в своих внутренних ресурсах. Названия созданных вами тем должны указываться без префикса ''qspider:''. | + | Вы можете вызывать множество команд плеера по клику на HTML-элемент, используя специальный атрибут ''qsp-command''. |
| - | Теги ''css-link'' содержат ссылки на CSS-файлы со стилями для темы. Точно так же: обратите внимание на атрибут ''src''. Префикс ''qspider:'' указывает, что CSS будет браться из внутренних ресурсов плеера. Вам нужно указывать пути без префикса ''qspider:'' для реально существующих в игре файлов. Пути к CSS файлам указываются в темах **относительно конфигурационного файла игры**, в котором эти темы подключаются. | + | Пример использования атрибута: |
| - | ==== Подключение тем ==== | + | <sxh html> |
| + | <button qsp-command="resume">Resume</button> | ||
| + | </sxh> | ||
| - | Для подключения своих тем к игре, пропишите в файле конфигурации параметры **themes** и **defaultTheme**: | + | Поддерживаются следующие команды плеера: |
| + | |||
| + | * ''%%quit%%'' — выход из игры на полку игр | ||
| + | * ''%%restart%%'' — перезапуск игры | ||
| + | * ''%%resume%%'' — продолжить игру (закрытие меню паузы) | ||
| + | * ''%%mute%%'' — выключить звук | ||
| + | * ''%%unmute%%'' — включить звук | ||
| + | * ''%%quicksave%%'' — быстрое сохранение | ||
| + | * ''%%quickload%%'' — быстрая загрузка | ||
| + | * ''%%pause:saves%%'' — открыть меню сохранения | ||
| + | * ''%%pause:preferences%%'' — открыть настройки | ||
| + | * ''%%scroll:main:bottom%%'' и ''%%scroll:main:top%%'' — прокрутка окна основного описания | ||
| + | * ''%%scroll:stats:bottom%%'' и ''%%scroll:stats:top%%'' — прокуртка окна доп описания | ||
| + | |||
| + | Эти команды можно вызывать и непосредственно из кода QSP, если подключить [[help:qspider_inclib|встроенную библиотеку]] ''qspider''. | ||
| + | |||
| + | Пример вызова команд из кода QSP: | ||
| <sxh qsp> | <sxh qsp> | ||
| - | [[game]] | + | inclib 'qspider' |
| - | id = "test-asset-qspider" | + | @qspider_quit() |
| - | title = "Суппер-пуппер-мега-игра" | + | @qspider_open_pause_screen('saves') |
| - | file="game_start.qsps" | + | |
| - | themes = ["themes/intro_page.html", "themes/game_main.html"] | + | |
| - | defaultTheme = "intro-page" | + | |
| </sxh> | </sxh> | ||
| - | В параметре **themes** размещается список путей к темам относительно файла конфигурации. | + | ===== Другие статьи по qSpider ===== |
| - | + | ||
| - | В параметре **defaultTheme** указывается название темы, которая будет использоваться по умолчанию (атрибут ''name'' тега ''qspider-theme''). | + | |
| + | * [[help:qspider|qSpider — общая информация]] | ||
| + | * [[help:qspider_gamecfg|Конфигурационный файл]] | ||
| + | * [[help:qspider_aeroqsp|Особенности запуска и работы игр AeroQSP на qSpider]] | ||
| + | * [[help:qspider_themes|Темы оформления]] | ||
| + | * [[help:qspider_spectags|Специальные теги]] | ||
| + | * [[help:qspider_inclib|Встроенная библиотека]] | ||
| + | * [[help:qspider_standalone|Стандалон-сборка игры на qSpider]] | ||