Открыть главное меню

Изменения

FireURQ:Руководство пользователя

14 537 байт добавлено, 11:03, 9 июня 2012
Новая: ==Вывод текста== Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. ...
==Вывод текста==

Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.

===Текст на экране===

Простейший способ вывести текст это использовать команды '''P''' и '''PLN'''. Советую освоить их, прежде чем переходить к другим способам вывода.

Формат команд:
'''p''' [текст]
'''pln''' [текст]

Регистр команд не имеет значения ('''pLn''' = '''PLN''' = '''Pln''').

На практике это выглядит так:
'''p''' Этот текст появится на экране.
или
'''pln''' Этот текст тоже появится на экране.

Каждая последующая команда '''P''' или '''PLN''' дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.

Разница этих двух команд в следующем - '''P''' просто добавляет новый текст, а '''PLN''' добавляет текст и делает переход на новую строку (создает абзац).

Например:
'''p''' А
'''p''' Б

Выдаст “АБ”, тогда как

'''pln''' А
'''pln''' Б

Выдаст:
А
Б

Чаще всего пользуются командой '''pln''', однако и '''p''' может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.

Команды '''P''' и '''PLN''' могут напрямую выводить любые символы (кроме символа комментария “;”) и переменные.

===Вывод переменных===

Вывод переменных возможен в двух вариантах - числовом и текстовом. Для того чтобы их вывести, нужно заключить имена переменных в соответствующие скобки:
'''pln''' '''#%'''имя_текстовой_переменной'''$''' '''#'''имя_числовой_переменной'''$'''
Несмотря на внешнее сходство, они отличаются содержанием и символом '''%'''. Если в числовые скобки попадет текстовая переменная, то на выводе окажется не текст, а количество символов в этой переменной. И наоборот, если числовая переменная попадет в текстовые скобки, то на выводе окажется пустота.

Выведем оба типа переменных на экран:

'''текстовая_переменная="Геннадий"'''
'''числовая_переменная=42'''
'''pln''' Крокодил схватил вас за ногу и сказал:
'''pln''' - Меня зовут '''#%текстовая_переменная$'''.
'''pln''' Затем крокодил схватил вас за другую ногу и сказал:
'''pln''' - Мне '''#числовая_переменная$''' года. Давай, ты станешь моим близким другом.

Результат:
Крокодил схватил вас за ногу и сказал:
- Меня зовут Геннадий.
Затем крокодил схватил вас за другую ногу и сказал:
- Мне 42 года. Давай, ты станешь моим близким другом.

Кроме того, в '''URQL''' есть специальные обозначения для вывода символа пробела - '''#$''', вывода символа переноса строки - '''#/$''' и вывода символа по ascii-коду - '''##'''ascii-код'''$'''.

Так, например, символ комментария можно вывести на экран, через его ascii-код:
'''pln''' Моя грамотность была на исходе'''##'''59'''$''' но, несмотря на это, я поставил точку с запятой в предложении.

Результат:
Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.

==Оформление текста==

В 21 веке в '''FURQ''' текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.

==Местоположение==
Область экрана, куда выводят текст команды '''p''' и '''pln''' можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные '''textpane_left''', '''textpane_top''', '''textpane_width''' и '''textpane_height''', которые описывают некий прямоугольник куда и выводится текст. По умолчанию он занимает почти весь экран. Это числовые переменные, которые содержат значения в пикселях.

Давайте, используя полученные нами знания, выведем значения этих переменных на экран:
'''pln''' Левая граница='''#textpane_left$''', Верхняя граница='''#textpane_top$''', Ширина='''#textpane_width$''', Высота='''#textpane_height$'''

Результат:
Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525

Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину('''textpane_width''') так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.

==Выравнивание текста==

За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода.

Лучше всего это понять на примере:
'''textalign = 1'''
'''pln''' текст выравнивается влево
'''textalign = 2'''
'''pln''' текст выравнивается вправо
'''textalign = 3'''
'''pln''' текст выравнивается по центру

''; Главное теперь не забыть, поменять переменную обратно на '''1''', если вы не хотите, чтобы текст всей игры был выравнен по центру.''

==Цвет==

Для определения цвета выводимого текста служит переменная '''textcolor'''. Цвет в '''FireURQ''' задается шестнадцатиричным числом в формате '''0xAARRGGBB'''. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет '''0xFF7F05BB''' и '''0x7F05BB''' – равнозначны. Также, для обратной совместимости поддерживается переменная '''Style_dos_textcolor''', которая работает так же, как и в '''DOS_URQ'''. Цвет фона менять нельзя, только цвет букв.

Встроенная функция '''_color([a,] r, g, b)''' – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности ('''a''') не указана, то она принимается равной '''255''' (т.е. полностью видимый цвет).

Пример:
'''proc''' _color(x+15, 10, 255, 60)
'''textcolor = _result'''

==Шрифт==

Для определения шрифта, которым будет выводиться текст, используется переменная '''textfont'''. В нее в виде строкового значения следует записать имя файла шрифта.

'''FireURQ''' позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).

Формат использования шрифта такой:
'''textfont = "file.ttf[<size>, <gamma>, <weight>, <bgcolor>]'''

*'''size''' – размер шрифта(по умолчанию '''19''')
*'''gamma''' – гамма, т.е. "светлость" границ шрифта(по умолчанию '''1.0''')
*'''weight''' – толщина(по умолчанию '''0.6''')
*'''bgcolor''' – цвет подложки (по умолчанию '''0x808080''')

Допустим, мы хотим вывести текст шрифтом Georgia.

Для этого пишем:
'''textfont = "georgia.ttf"'''
И сразу же проверяем результат, при помощи оператора вывода текста '''pln''', который мы уже освоили в совершенстве:
'''pln Крокодил зарылся в ил, Крокодила Нил манил'''

В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, 19 кегль, используемый по умолчанию выглядит мелко, поэтому сделаем размер шрифта покрупнее, чтобы все видели издалека эту прекрасную скороговорку.

Меняем размер шрифта на 42:
'''textfont = "georgia.ttf[42]"'''

Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре '''bgcolor''', конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке.

Примеры:
'''textfont = "georgia.ttf[20,1.1]"'''
'''textfont = "verdana.ttf[10,,,0xFFFFFF]"'''
'''textfont = "timesi.ttf[32,,1.3]"'''

Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:
'''textfont = "_sysfont"'''

'''FireURQ''' может использовать и растровые шрифты формата '''HGE Font''' (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат '''HGE Font''', входит в дистрибутив (папка '''fonted''').

Пример использования HGE шрифта
'''textfont = "myfont.fnt"'''

==Команда CLS==

Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд '''P''' и '''PLN''', существует команда '''CLS'''. У нее нет никаких параметров.

Пример:
'''pln Уйма текста.'''
'''cls'''

Результат:
&nbsp;

==Другие способы вывода текста==

Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]].

==Текст в заголовке==

Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.

Пример:
'''gametitle = “Крокодил”'''

Результат:

[[Изображение:Furq_titlebar.png]]

''; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.''