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

Изменения

FireURQ:Особенности реализации URQL

16 532 байта добавлено, 21:05, 21 мая 2012
м
Нет описания правки
==Декораторы==
Основное описание Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты. ===Создание декораторов=== Общий синтаксис для добавления декоратора следующий:   '''decoradd <имя> (<x>,<y>[, <z>]) <тип декоратора> <параметры>'''  *'''имя''' – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. *'''x''', '''y''' и '''z''' – координаты декоратора на экране. Параметр '''z''' используется для определения «глубины» декоратора. Чем меньше '''z''', тем «ближе» декоратор к игроку. Все декораторы с '''z''' от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с '''z''' меньше 0 – «перед» ним. Если '''z''' не указан, то он принимается равным 0. *тип декоратора может быть '''TEXT''', '''RECT''', '''IMAGE''', '''ANIMATION''' и '''GIF'''. *'''параметры''' – разные, в зависимости от типа декоратора.  Теперь более подробно по типам.  Тип '''TEXT''' позволяет добавить декоратор-кусочек текста:   '''decoradd <имя> (<x>,<y>[, <z>]) TEXT "собственно, текст" [, цвет[,"шрифт"]]''' Если '''цвет''' или '''шрифт''' не указаны, то они принимаются равными цвету и шрифту основного текста.  Тип '''RECT''' – это просто цветной прямоугольник:   '''decoradd <имя> (<x>,<y>[, <z>]) RECT ширина, высота [, цвет]'''  Если '''цвет''' не указан, то он принимается равным цвету основного текста.  Тип '''IMAGE''' – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора '''image''' (см. выше) :   '''decoradd <имя> (<x>,<y>[, <z>]) IMAGE "имя_файла"[, X, Y, ширина, высота]''' Как и в операторе '''image''' , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов.  Декоратор-анимация добавляется с помощью типа '''ANIMATION''' :   '''decoradd <имя> (<x>,<y>[, <z>]) ANIMATION "имя_файла", X, Y, ширина, высота, N'''  Параметры похожи на параметры типа '''IMAGE''', за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. '''N''' определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку).  Декоратор-GIF можно создать с помощью типа '''GIF''':   '''decoradd <имя> (<x>,<y>[, <z>]) GIF "имя_gif-файла"'''   Важное замечание: В декораторах типа '''IMAGE''' можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом '''GIF'''.  ===Управление декораторами=== Для управления декораторами применяются следующие команды:   '''decormov <имя> X, Y[, время]'''Позволяет переместить декоратор в точку с координатами '''X''' и '''Y'''. Если указано '''время''' (в миллисекундах), то перемещение будет плавным и займет как раз указанное время.   '''decorcol <имя> цвет[, время]'''Позволяет установить цвет декоратора. Если указано '''время''', то изменение цвета будет плавным.   '''decorrot <имя> угол[, время]'''Позволяет повернуть декоратор на определенный '''угол''' (в градусах). Важно помнить, что угол в этой команде задается ''относительно текущего''. Это позволяет поворачивать декоратор в обе стороны. Если указано время, то поворот будет плавным. Эта команда не работает с декораторами типа '''TEXT'''.   '''decordel [<имя1>, <имя2>, …]'''Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы.   '''decorscl <имя> масштаб[, время]'''Позволяет установить '''масштаб''' декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано '''время''', то изменение цвета будет плавным.   '''decorscr <имя> "скрипт"'''Назначает декоратору скрипт.  Во всех командах управления декораторами в качестве параметра '''имя''' можно передавать маску имён с использованием символов '''*''' (замещает любое количество символов) и '''?''' (замещает один символ). Например, команда '''decorrot sas* 90, 2000'''повернёт все декораторы, имя которых начинается с "sas", на 90 градусов по часовой стрелке за две секунды.  ===Переменные декораторов===Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: *'''decor_имя_x, decor_имя_y и decor_имя_z''' – позволяют задать координаты декоратора. *'''decor_имя_color''' – позволяет задать цвет декоратора. *'''decor_имя_hide''' – если установлен в 1, то декоратор скрыт. *'''decor_имя_text''' – устанавливает текст декоратора (только для типа '''TEXT''') *'''decor_имя_align''' – устанавливает тип выравнивание текста внутри декоратора аналогично переменной '''textalign''' (только для типа '''TEXT'''), по умолчанию равна 1 *'''decor_имя_width''' – устанавливает ширину (в пикселях) текстового декоратора, по которой текст будет переноситься на другую строку (только для типа '''TEXT'''), по умолчанию равна 2000000000 *'''decor_имя_hotx''' и '''decor_имя_hoty''' – позволяют задать «горячую точку» для декоратора (кроме типа '''TEXT'''). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. *'''decor_имя_angle''' – позволяет задать угол поворота декоратора (кроме типа '''TEXT'''). Угол задается в градусах. *'''decor_имя_rotspeed''' – позволяет задать постоянную скорость вращения декоратора (кроме типа '''TEXT'''). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. *'''decor_имя_scale''' – позволяет задать масштаб декоратора (кроме типа '''TEXT'''). По умолчанию равна 1 . *'''decor_имя_frame''' – позволяет задать текущий кадр анимации (только для типов '''ANIMATION''' и '''GIF'''). Процесс анимации при этом останавливается. *'''decor_имя_anispeed''' – позволяет задать скорость анимации (только для типов '''ANIMATION''' и '''GIF'''). Для разных типов поведение различается: **Для типа '''ANIMATION''' . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250 . **Для типа '''GIF''' . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать значения от 0 до 1000. По умолчанию имеет значение 100 . *'''decor_имя_anitype''' – позволяет задать тип анимации (только для типа ANIMATION). Может принимать следующие значения: **'''0''' – анимация проигрывается один раз и останавливается; **'''1''' – анимация зациклена (с последнего кадра перескакивает обратно на первый) **'''2''' – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации) *'''decor_имя_script''' – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить.   ===Скрипты декораторов ===Скрипты позволяют "запрограммировать" декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов.  Скрипты декораторам назначаются с помощью команды '''decorscr''' или переменной '''decor_имя_script''' и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты ('''/''').   '''''Команды'''''  '''mov x, y [, time]''' - перемещение в точку '''x''', '''y''' (опционально - за время '''time''')  '''mvr''' - то же самое, но координаты задаются относительные '''movx''' и '''mvrx''' - то же самое, но следующая команда выполнится немедленно (не будет паузы на время '''time''')  '''pau <time>''' - пауза на время '''time'''  '''col <цвет>[, time]''' - изменение цвета декоратора (включая скриптыопционально - за время '''time''') переехало  '''col <A, R, G, B>[, time]''' - то же самое, но компоненты цвета задаются отдельными параметрами '''colx''' - то же самое, но следующая команда выполнится немедленно (не будет паузы на время '''time''')  '''ang <угол>''' - задать абсолютный угол поворота декоратора (в CHMградусах)  '''rot <угол>[, time]''' -справкуповорот декоратора на угол (относительное значение, опционально - за время '''time''') '''rotx''' - без паузы  '''rsp <скорость вращения>''' - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду)  '''scl <масштаб>[, time]''' - задать масштаб декоратора (опционально - за время '''time''') '''sclx''' - то же самое без паузы  '''rst''' - запустить скрипт с начала  '''del''' - уничтожить декоратор   '''''Случайные параметры'''''  Любой из параметров можно определить как '''R(min,max)''', таким образом, при исполнении команды будет вычислено случайное значение от '''min''' до '''max'''.   '''''Пример''''' '''decorscr star "movr 50, 0, 1000/rot R(-90,90), 1500/rst"'''Декоратор с именем '''star''' переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.
===Текстовые декораторы===