- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
При использовании HTML мы можем более гибко управлять внешним видом нашей игры, встраивать в неё изображения и использовать гиперссылки. Это позволяет разгрузить интерфейс от ненужных текстовых элементов, уменьшить число кнопок, и сделать управление игрой более гибким.
Иными словами HTML помогает нам сделать игру внешне привлекательной и удобной для игрока.
Чтобы мы могли использовать HTML в нашей игре, необходимо включить режим раcпознавания HTML. Это делается с помощью системной переменной USEHTML
.
USEHTML
— если значение данной переменной отлично от 0, включает возможность использования HTML в окне основного описания, в окне дополнительного описания, в списках действий и предметов, а также в диалоговых окнах, вызываемых функцией $INPUT
и оператором MSG
. Выводимый текст распознаётся как HTML.
usehtml = 1 & ! включаем режим распознавания HTML
По умолчанию в любом плеере QSP отключено распознавание HTML, поскольку на старте игры все переменные равны нулю, в т.ч. и USEHTML
. Из-за этого все HTML-теги, выводимые в тексте с помощью соответствующих команд, или в названиях предметов, действий или диалоговых окон $INPUT
и MSG
, будут отображены на экране, как есть. 1).
При изменении значения USEHTML
на число, отличное от нуля, распознавание HTML включится, и сами теги будут скрыты от игрока, а к тексту, выводимому на экран, будет применено форматирование, соответствующее этим тегам.
В QSP есть возможность запускать код по щелчку на гиперссылке. Для этого мы должны изменить содержимое атрибута href
.
В этом атрибуте мы прописываем ключевое слово EXEC
, затем без пробелов ставим двоеточие, а после двоеточия в одну строку пишем обычный код QSP. Вот пример вставленной в текст гиперссылки, которая ведёт игрока на другую локацию:
usehtml=1 *pl 'В тени сумрачного леса приютился маленький <a href="EXEC: goto ''пряничный_домик'' ">пряничный домик</a>.'
Обратите внимание на используемые в строке кавычки. Поскольку для записи строки мы использовали одинарные кавычки (апострофы), а двойные кавычки использовали для атрибута href, пришлось экранировать одинарные кавычки в строке дублированием, чтобы название локации пряничный_домик
так же было заключено в кавычки. Сравните эту запись со следующей:
*pl "В тени сумрачного леса приютился маленький <a href=""EXEC: goto 'пряничный_домик' "">пряничный домик</a>."
В гиперссылках нельзя размещать многострочный код, поскольку это нарушает чтение гиперссылок в плеерах, поддерживающих полноценный HTML. Записывайте все команды в одну строку:
if был_здесь = 0: яблоки = 10 был_здесь = 1 end *pl "<a href=""EXEC: if яблоки > 0: яблоки-=1 & gt $curloc else: pl 'Яблок больше нет.' "">Яблоки (<<яблоки>> шт.)</a>"
Если нужно выполнить из гиперссылки сложный многострочный код, разместите этот код на отдельной локации, а затем уже вызывайте локацию с помощью GOSUB
из гиперссылки:
*pl "<a href=""EXEC: gosub ''взять_яблоко'' "">Яблоки (<<яблоки>> шт.)</a>"
Или поместите код в текстовую переменную, а потом выполняйте из гиперссылки с помощью оператора DYNAMIC
:
$code = { if яблоки > 0: яблоки -= 1 pl 'Вы взяли одно яблоко.' gt $curloc else: pl 'Яблок больше нет.' end } *pl "<a href='EXEC: dynamic $code '>Яблоки (<<яблоки>> шт.)</a>"
style
.usehtml