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

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


help:qspider_interface

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:qspider_interface [2024/03/13 07:24]
aleks_versus [Переключение тем]
help:qspider_interface [2024/10/14 13:37] (текущий)
aleks_versus
Строка 2: Строка 2:
  
 **qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой. **qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой.
- 
-Вы можете создавать свои темы оформления,​ управлять отдельными элементами,​ и связывать код игры с событиями плеера (клик, двойной клик, наведение курсора). 
  
 Управление интерфейсом и HTML-разметкой из кода игры осуществляется с помощью [[help:​qspider_inclib|встроенной в плеер библиотеки]] "''​qspider''"​. Чтобы воспользоваться этой библиотекой,​ необходимо подключить её в начале игры, как обычный модуль QSP: Управление интерфейсом и HTML-разметкой из кода игры осуществляется с помощью [[help:​qspider_inclib|встроенной в плеер библиотеки]] "''​qspider''"​. Чтобы воспользоваться этой библиотекой,​ необходимо подключить её в начале игры, как обычный модуль QSP:
 +
 <sxh qsp> <sxh qsp>
 inclib '​qspider'​ inclib '​qspider'​
 </​sxh>​ </​sxh>​
  
-===== Темы оформления =====+В **qSpider** вы можете:
  
-qSpider позволяет вам писать собственные темы оформления, которые затем ​можно переключать ​прямо из кода игры. Таким образом вы можете написать ​несколько тем для различных нужд, и включать ​их по мере необходимости.+  * Создавать собственные ​[[help:​qspider_themes|темы оформления]] и управлять ими. 
 +  * Взаимодействовать с HTML через ​[[help:​qspider_spectags|специальные ​теги]]. 
 +  * [[#​Привязка%20элементов%20HTML-форм%20к%20QSP-переменными|Связывать ​элементы форм HTML]] со значениями переменных QSP. 
 +  * [[#Вызов%20QSP-кода%20по%20событию%20в%20плеере|Вызывать код QSP по событию]] в браузере (плеере). 
 +  * [[#Вызов%20команд%20плеера|Вызывать ​встроенную ​команду плеера]] при клике по 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-кода по событию в плеере ​=====
  
-<sxh html> +Вы можете вызывать код QSP при определённых событиях в плеере с помощью новых атрибутов,​ начинающихся с префикса ''​qsp-on:''​.
-<qspider-theme name="​qspider:classic">​ +
-  <​css-link src="​qspider:​themes/​common.css"></​css-link>​ +
-  <​css-link src="​qspider:​themes/​classic.css"></​css-link>​ +
-</​sxh>​+
  
-В теге ''​qspider-theme''​ в атрибуте ''​name''​ указывается название темы. Именно это название в дальнейшем будет использоваться для указания темы по умолчанию и при переключении тем.+Поддерживаются ​следующие атрибуты:
  
-Префикс ''​qspider:''​ в этом атрибуте указывает ​на то, что тема встроена в плеер, а значит qSpider будет искать эту тему в своих внутренних ресурсах. Названия созданных вами тем должны указываться без префикса ''​qspider:''​.+  * ''​qsp-on:​click''​ — одинарный клик 
 +  * ''​qsp-on:dblclick'' ​— двойной клик 
 +  * ''​qsp-on:​contextmenu''​ — клик правой кнопкой 
 +  * ''​qsp-on:​mouseenter''​ — наведение курсора 
 +  * ''​qsp-on:​mouseleave''​ — выход курсора за пределы элемента
  
-Теги ''​css-link''​ содержат ссылки на CSS-файлы со стилями для темы. Точно так же: обратите внимание на атрибут ​''​src''​. Префикс ''​qspider:''​ указывает, что CSS будет браться из внутренних ресурсов плеера. Вам ​нужно указывать пути без префикса ''​qspider:'' ​для реально существующих в игре файлов. Пути к CSS файлам указываются в темах **относительно конфигурационного файла игры**, в котором эти темы подключаются.+Содержимым атрибутов должен быть валидный код QSP. Примеры использования атрибутов:
  
-==== Подключение тем ====+<sxh html> 
 +<div qsp-on:​click="exec: msg '​click'"​ qsp-on:​dblclick="exec: msg '​dblclick'">​Click me</​div>​ 
 +<div qsp-on:​contextmenu="exec: menu '​$context_menu'">​Right Click me</​div>​ 
 +<div qsp-on:​mouseenter="exec: pl '​enter'"​ qsp-on:​mouseleave="exec: pl '​leave'">​Hover me</​div>​ 
 +</​sxh>​
  
-Для подключения своих тем к игре, ​пропишите в файле конфигурации параметры **themes** и **defaultTheme**:​+===== Вызов команд ​плеера =====
  
-<sxh qsp> +Вы можете вызывать множество команд ​плеера по клику на HTML-элемент,​ используя специальный атрибут ''​qsp-command''​. 
-[[game]] + 
-id = "​test-asset-qspider"​ +Пример использования атрибута: 
-title = "​Суппер-пуппер-мега-игра" + 
-file="​game_start.qsps"​ +<​sxh ​html> 
-themes = ["​themes/​intro_page.html", "​themes/​game_main.html"​] +<button qsp-command="resume">​Resume</​button>​
-defaultTheme ​= "intro-page"+
 </​sxh>​ </​sxh>​
  
-В параметре **themes** ​размещается список путей к темам относительно файла конфигурации.+Поддерживаются следующие команды плеера:
  
-В параметре **defaultTheme** ​указывается название темы, ​которая будет использоваться по умолчанию (атрибут ​''​name''​ тега ''​qspider-theme''​). +  * ''​%%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''​.
  
-Переключение темы можно производить ​непосредственно ​из кода ​игры, используя [[help:qspider_inclib|встроенную библиотеку]] "''​qspider''""​.+Пример вызова команд из кода ​QSP:
  
 <sxh qsp> <sxh qsp>
 inclib '​qspider'​ inclib '​qspider'​
-@qspider_change_theme('game-main')+@qspider_quit() 
 +@qspider_open_pause_screen('saves')
 </​sxh>​ </​sxh>​
 +
 +===== Другие статьи по qSpider =====
 +
 +  * [[help:​qspider|qSpider — общая информация]]
 +  * [[help:​qspider_gamecfg|Конфигурационный файл]]
 +  * [[help:​qspider_aeroqsp|Особенности запуска и работы игр AeroQSP на qSpider]]
 +  * [[help:​qspider_themes|Темы оформления]]
 +  * [[help:​qspider_spectags|Специальные теги]]
 +  * [[help:​qspider_inclib|Встроенная библиотека]]
 +  * [[help:​qspider_standalone|Стандалон-сборка игры на qSpider]]
 +
help/qspider_interface.1710314677.txt.gz · Последние изменения: 2024/03/13 07:24 — aleks_versus