Counter — различия между версиями
Fhod (обсуждение | вклад) (→Пример) |
Mlipa (обсуждение | вклад) |
||
(не показано 38 промежуточных версий 9 участников) | |||
Строка 1: | Строка 1: | ||
[[Файл:Counte.jpg|right]] | [[Файл:Counte.jpg|right]] | ||
− | ''' | + | '''Counter''' - [[Object|объект]], который хранит значение целого положительного числа, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов или кликов в игре, количества оставшихся подсказок и т.п. Он может быть скрыт и использоваться для хранения целого числа, необходимого для работы других объектов, например, [[Machine|машинами состояний]]. |
== Общие параметры == | == Общие параметры == | ||
Смотреть описание [[Object|Object]]. | Смотреть описание [[Object|Object]]. | ||
== Основные параметры == | == Основные параметры == | ||
− | *'''res''' - Графический ресурс для отображения цифр (анимированный клип из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов. | + | *'''res''' ('' res '') - Графический ресурс для отображения цифр ([[Интерфейс_ResourceEditor|анимированный клип]] из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов. |
− | *'''min''' - Минимальное значение счетчика. | + | *'''res neg''' ('' resneg '') - Графический ресурс для отображения отрицательных чисел (анимированный клип из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). 11 фрейм - минус, если он есть. |
− | *'''max''' - Максимальное значение счетчика | + | *'''отладка''' ('' trace '') - Отображать в окне состояний текущий объект |
− | *'''val''' - Начальное (текущее) значение счетчика. | + | *'''min''' ('' min '') - Минимальное значение счетчика. |
− | *'''new_val''' - Новое значение. Будет записано в val при вызове состояния save. | + | *'''max''' ('' max'') - Максимальное значение счетчика. |
− | *'''dx между цифрами''' - Расстояние между цифрами. | + | *'''val''' ('' val '') - Начальное (текущее) значение счетчика. |
− | *'''выравнивание''' - | + | *'''val2''' ('' val2 '') - Дополнительное значение счетчика. Только для время == 2. |
− | *'''время''' - | + | *'''new_val''' ('' new_val '') - Новое значение. Будет записано в val при вызове состояния save. |
+ | *'''шаг (inc, dec)''' ('' dval '') - Величина, на которую изменяется счетчик при inc и dec ( min=1) ( если меняем значение во вьювере, после задания значения - инитим счётчик). | ||
+ | *'''dx между цифрами''' ('' digShift '') - Расстояние между цифрами. | ||
+ | *'''выравнивание''' ('' left ''): | ||
+ | :'''1''' - число будет выравниваться по левому краю (цифры числа сдвигаются слева направо); | ||
+ | :'''2''' - будет выравниваться по центру; | ||
+ | :'''0''' - выравнивание по правому краю. | ||
+ | *'''время''' ('' time ''): | ||
+ | :'''1''' - число будет считаться временем в секундах и отображаться в виде mm:ss. Двоеточие должно быть 11 кадром графического ресурса; | ||
+ | :'''2''' - будет отображаться разделитель и второе значение из поля val2, разделитель также из 11 кадра графики; | ||
+ | :'''3''' - "нет (улучш.)" - поставив параметр время в это значение, каунтер будет правильно выравниваться в соответствии с параметром "выравнивание". | ||
+ | :'''0''' - будет отображенно число без форматирование во временную единицу. | ||
+ | *'''отображать дробную часть''' ('' showfloat '') - Отображать дробную часть | ||
+ | *'''разрядов не менее''' ('' digitsnum'') - отображает минимально фиксированное число разрядов(как на счётчиках) например при значении параметра 5 и значении счётчика 18 будет отображаться 00018. | ||
+ | '''Группа - времена''': | ||
+ | :'''невидимости''' ('' tmBeg '') - Время невидимости перед открытием; | ||
+ | :'''открытия''' ('' tmOpn '') - Время проявления от полной прозрачности к прозрачности, заданной в модификаторах; | ||
+ | :'''закрытия''' ('' tmCls '') - Время исчезания до полной прозрачности; | ||
+ | :'''изменения''' ('' tmChg '') - Время, за которое счетчик изменяется (inc, dec); | ||
+ | :'''шага изменения''' ('' tmChgIt '') - Скорость, с которой счетчик изменяется (inc, dec). | ||
+ | :'''скорость изменения''' ('' velChg'') - Время промежутков, через которые происходит обновление счетчика при изменении (inc, dec). | ||
+ | *'''сохранять в профиль''' ('' prof ''): | ||
+ | :'''1''' - значение будет сохранено в текущий профиль; | ||
+ | :'''0''' - сохранено глобально. | ||
+ | *'''игра''' ('' game '') - Имя игры (раздела в опциях), который надо вычитать для получения начального значения счетчика (например, для отображения результатов). | ||
+ | *'''уровень''' ('' level '') - Имя уровня (параметра в разделе игра - см.выше), который надо вычитать для получения начального значения счетчика (например, для отображения результатов). Раздел равен: game.level. | ||
− | '''Группа - | + | *'''Группа - шрифт''': |
− | + | :'''имя''' ('' fn ''): | |
− | + | ::'''число, начиная с 0''' - порядковый номер шрифта (чтобы отобразился шрифт, нужно каунтеру задать ресурс (res), ресурс во вьювере отображён не будет); | |
− | + | ::'''-1''' - рисовать каунтер клипами. | |
+ | :'''размер''' ('' fs '') - Размер шрифта в пикселях; | ||
+ | :'''цвет 1''' ('' fc '') - Цвет текста. | ||
+ | |||
+ | <pre> | ||
+ | Счетчик может отображать отрицательные чиста. | ||
+ | Если для отображения используется графика, то 11-ым кадром в анимации должен быть символ "минус". | ||
+ | Если счетчик отображается шрифтом, то можно указать цвет отрицательных чисел. | ||
+ | </pre> | ||
− | |||
− | |||
− | |||
== Добавляемые параметры == | == Добавляемые параметры == | ||
[[Файл:Counte_1.png|right]] | [[Файл:Counte_1.png|right]] | ||
− | Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши. | + | Меню выбора ''Добавляемые параметры'' к объектам активируется по нажатию правой кнопки мыши. |
+ | |||
+ | |||
+ | [[Файл:+.png]] '''dec: при уменьшении изменить объект''' ('' decChg '') - При уменьшении значения счетчика, изменить объект: | ||
+ | *'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект; | ||
+ | *'''состояние''' ('' obj '') - Состояние в которое переводится объект; | ||
+ | *'''параметр''' ('' par '') - Параметр, который мы изменяем; | ||
+ | *'''значение''' ('' st '') - Новое значение параметра. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''условие при котором происходят изменения из раздела dec''' ('' decIf '') - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND): | ||
+ | *'''объект''' ('' obj '') - Объект, свойства которого мы проверяем; | ||
+ | *'''состояние''' ('' st '') - Находится ли в этом состоянии объект; | ||
+ | *'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля; | ||
+ | *'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении; | ||
+ | *'''куплено''' ('' val '') - Имя фичи для проверки её купленности; | ||
+ | *'''нет''' ('' not '') : Это условие должно не выполняться: | ||
+ | :'''1''' - если условие не выполняется, работает '''dec: при уменьшении изменить объект'''; | ||
+ | :'''0''' - если условие выполняется, работает '''dec: при уменьшении изменить объект'''. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''при опускании под min изменить объект''' ('' minChg '') - При уменьшении значения счетчика ниже min, изменить объект: | ||
+ | *'''объект''' ('' obj '') - При уменьшении значения счетчика ниже min, изменить этот объект; | ||
+ | *'''состояние''' ('' st '') - Состояние в которое переводится объект; | ||
+ | *'''параметр''' ('' par '') - Параметр, который мы изменяем; | ||
+ | *'''значение''' ('' val '') - Новое значение параметра. | ||
+ | |||
+ | [[Файл:+.png]] '''условие при котором происходят изменения из раздела min''' ('' minIf '') - Условие при выполнении которого происходят изменения из раздела min. Их может быть несколько (логический AND): | ||
+ | *'''объект''' ('' obj '') - Объект, свойства которого мы проверяем; | ||
+ | *'''состояние''' ('' st '') - Находится ли в этом состоянии объект; | ||
+ | *'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля; | ||
+ | *'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении; | ||
+ | *'''куплено''' ('' buy '') - Имя фичи для проверки её купленности; | ||
+ | *'''нет''' ('' not '') : Это условие должно не выполняться: | ||
+ | :'''1''' - если условие не выполняется, работает '''при опускании под min изменить объект'''; | ||
+ | :'''0''' - если условие выполняется, работает '''при опускании под min изменить объект'''. | ||
− | [[Файл:+.png]] ''' | + | |
− | *'''объект''' - При уменьшении значения счетчика, изменить этот объект | + | [[Файл:+.png]] '''inc: при увеличении изменить объект''' ('' incChg '') - При увеличении значения счетчика, изменить объект: |
− | *'''состояние''' - Состояние в которое переводится объект | + | *'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект; |
− | *'''параметр''' - Параметр, который мы изменяем | + | *'''состояние''' ('' st '') - Состояние в которое переводится объект; |
− | *'''значение''' - Новое значение параметра. | + | *'''параметр''' ('' par '') - Параметр, который мы изменяем; |
− | [[Файл:+.png]] '''условие при котором происходят изменения из раздела | + | *'''значение''' ('' val '') - Новое значение параметра. |
− | *'''объект''' - Объект, свойства которого мы проверяем | + | |
− | *'''состояние''' - Находится ли в этом состоянии объект | + | |
− | *'''параметр''' - Имеет ли объект параметр в значении следующего поля | + | [[Файл:+.png]] '''условие при котором происходят изменения из раздела inc''' ('' incIf '') - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND): |
− | *'''значение''' - Имеет ли объект параметр из следующего поля в этом значении | + | *'''объект''' ('' obj '') - Объект, свойства которого мы проверяем; |
− | *'''куплено''' - Имя фичи для проверки её купленности | + | *'''состояние''' ('' st '') - Находится ли в этом состоянии объект; |
− | *'''not'' | + | *'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля; |
− | + | *'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении; | |
− | + | *'''куплено''' ('' buy '') - Имя фичи для проверки её купленности; | |
− | + | *'''нет''' ('' not '') : Это условие должно не выполняться: | |
− | + | :'''1''' - если условие не выполняется, работает '''inc: при увеличении изменить объект'''; | |
− | + | :'''0''' - если условие выполняется,работает '''inc: при увеличении изменить объект'''; | |
− | [[Файл:+.png]] ''' | + | |
− | + | ||
− | + | [[Файл:+.png]] '''при превышении max изменить объект''' ('' maxChg '') - При увеличении значения счетчика более max, изменить объект: | |
− | *''' | + | *'''объект''' ('' obj '') - При увеличении значения счетчика более max, изменить этот объект; |
− | + | *'''состояние''' ('' st '') - Состояние в которое переводится объект; | |
− | + | *'''параметр''' ('' par '') - Параметр, который мы изменяем; | |
− | + | *'''значение''' ('' val '') - Новое значение параметра. | |
− | + | ||
− | *''' | + | |
− | + | [[Файл:+.png]] '''условие при котором происходят изменения из раздела max''' ('' maxIf '') - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND): | |
− | *'''параметр''' - Параметр, который мы изменяем | + | *'''объект''' ('' obj '') - Объект, свойства которого мы проверяем; |
− | *'''значение''' - Новое значение параметра. | + | *'''состояние''' ('' st '') - Находится ли в этом состоянии объект; |
− | [[Файл:+.png]] '''условие при котором происходят изменения из раздела | + | *'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля; |
− | *'''объект''' - Объект, свойства которого мы проверяем | + | *'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении; |
− | *'''состояние''' - Находится ли в этом состоянии объект | + | *'''куплено''' ('' buy '') - Имя фичи для проверки её купленности; |
− | *'''параметр''' - Имеет ли объект параметр в значении следующего поля | + | *'''нет''' ('' not '') : Это условие должно не выполняться: |
− | *'''значение''' - Имеет ли объект параметр из следующего поля в этом значении | + | :'''1''' - если условие не выполняется, работает '''при превышении max изменить объект'''; |
− | *'''куплено''' - Имя фичи для проверки её купленности | + | :'''0''' - если условие выполняется,работает '''при превышении max изменить объект'''; |
− | *'''not'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Состояния == | == Состояния == | ||
− | Объект Counter обладает рядом состояний: | + | Объект '''Counter''' обладает рядом состояний: |
− | * '''dec''' - Уменьшить значение счетчика на 1 | + | *'''dec''' - Уменьшить значение счетчика на 1; |
− | * '''inc''' - Увеличить значение счетчика на 1 | + | *'''inc''' - Увеличить значение счетчика на 1; |
− | * '''min''' - Установить счетчик в минимальное значение | + | *'''min''' - Установить счетчик в минимальное значение; |
− | * '''max''' - Установить счетчик в максимальное значение | + | *'''max''' - Установить счетчик в максимальное значение; |
− | * '''init''' - Переинициализировать счетчик | + | *'''init''' - Переинициализировать счетчик; |
− | * '''reset''' - Переустановить счетчик | + | *'''reset''' - Переустановить счетчик; |
− | * '''read''' - Прочитать значение счетчика из опций. | + | *'''read''' - Прочитать значение счетчика из опций; |
− | * '''save''' - Сохранить значение счетчика в опции. | + | *'''read_anim''' - Прочитать значение счетчика из поля в опциях; При этом: воспринимает параметры tmChg, tmChgIt, velChg. Это значит, что счетчик при передаче ему этого состояния, "прокручивает" графику до значения, считанного из опций. Это заменяет используемую связку последовательного изменения dval, передачи init и inc. |
+ | *'''save''' - Сохранить значение счетчика в опции. | ||
== Пример == | == Пример == | ||
Строка 95: | Строка 148: | ||
с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1). | с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1). | ||
− | Рассмотрим пример использования. Пусть есть счетчик и | + | Рассмотрим пример использования. Пусть есть счетчик и четыре кнопки. При помощи клика правой кнопки мыши, добавим каждой кнопке раздел "изменить состояние объекта", в котором при нажатии на кнопку будет вызываться состояние счетчика '''dec''', '''inc''', '''min''', '''max''' соответственно. |
− | При помощи правой кнопки мыши | ||
− | в котором при нажатии на кнопку будет | ||
<center> | <center> | ||
[[Файл:test_cnt_1.png]] | [[Файл:test_cnt_1.png]] | ||
</center> | </center> | ||
− | В результате, при клике на кнопку будет происходить увеличение цифр 0 до | + | В результате, при клике на кнопку '''inc''' будет происходить увеличение цифр 0 до 30 . После достижения максимальной границы, равной 30, счетчик перестанет увеличиваться. Аналогично, при клике на кнопку '''dec''', можно уменьшить значения счетчика. Клик на кнопку '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно. |
− | Аналогично, при | ||
− | |||
− | По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "''' | + | По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''выравнивание'''" установить в 1, то неподвижным будет левый край. При значении этого параметра 2, неподвижным будет центр числа. Параметр "'''dx между цифрами'''" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе). |
− | неподвижным будет левый край. При значении этого параметра 2, неподвижным будет центр числа. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе). | ||
− | + | ||
+ | '''Прямое изменение значения.''' | ||
Значение счетчика можно изменить напрямую, например, их машины состояний: | Значение счетчика можно изменить напрямую, например, их машины состояний: | ||
Строка 127: | Строка 176: | ||
В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val". | В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val". | ||
− | + | ||
+ | '''Достижение границ.''' | ||
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). | Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). | ||
При достижении границ счетчика можно изменить состояния или параметры других объектов. | При достижении границ счетчика можно изменить состояния или параметры других объектов. | ||
− | Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел | + | Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел: |
− | + | ||
− | + | [[Файл:+.png]] '''при опускании под min изменить объект''': | |
− | + | :'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект; | |
− | + | :'''состояние''' - Состояние в которое переводится объект; | |
+ | :'''параметр''' - Параметр, который мы изменяем; | ||
+ | :'''значение''' - Новое значение параметра. | ||
+ | |||
При изменении параметра переинициализировать объект не надо (это произойдет автоматически). | При изменении параметра переинициализировать объект не надо (это произойдет автоматически). | ||
Строка 141: | Строка 194: | ||
а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов. | а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов. | ||
− | + | Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре). После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close". При закрытии окна и повторной попытке нажать на кнопку, окно должно появляться снова. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре). | ||
− | После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close". | ||
− | При закрытии окна и | ||
Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика): | Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика): | ||
<center> | <center> | ||
Строка 155: | Строка 200: | ||
</center> | </center> | ||
− | + | ||
+ | '''Значение из options.''' | ||
Начальное значение счетчика можно задавать не только в редакторе (поле '''val'''), но и получать его сохраненное значение в [[Options|опциях игры]]. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores". | Начальное значение счетчика можно задавать не только в редакторе (поле '''val'''), но и получать его сохраненное значение в [[Options|опциях игры]]. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores". | ||
Строка 175: | Строка 221: | ||
Напомним, что объект [[Options]] в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный. | Напомним, что объект [[Options]] в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный. | ||
+ | |||
+ | [[Category:Main objects]] |
Текущая версия на 12:30, 1 августа 2018
Counter - объект, который хранит значение целого положительного числа, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов или кликов в игре, количества оставшихся подсказок и т.п. Он может быть скрыт и использоваться для хранения целого числа, необходимого для работы других объектов, например, машинами состояний.
Общие параметры
Смотреть описание Object.
Основные параметры
- res ( res ) - Графический ресурс для отображения цифр (анимированный клип из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов.
- res neg ( resneg ) - Графический ресурс для отображения отрицательных чисел (анимированный клип из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). 11 фрейм - минус, если он есть.
- отладка ( trace ) - Отображать в окне состояний текущий объект
- min ( min ) - Минимальное значение счетчика.
- max ( max) - Максимальное значение счетчика.
- val ( val ) - Начальное (текущее) значение счетчика.
- val2 ( val2 ) - Дополнительное значение счетчика. Только для время == 2.
- new_val ( new_val ) - Новое значение. Будет записано в val при вызове состояния save.
- шаг (inc, dec) ( dval ) - Величина, на которую изменяется счетчик при inc и dec ( min=1) ( если меняем значение во вьювере, после задания значения - инитим счётчик).
- dx между цифрами ( digShift ) - Расстояние между цифрами.
- выравнивание ( left ):
- 1 - число будет выравниваться по левому краю (цифры числа сдвигаются слева направо);
- 2 - будет выравниваться по центру;
- 0 - выравнивание по правому краю.
- время ( time ):
- 1 - число будет считаться временем в секундах и отображаться в виде mm:ss. Двоеточие должно быть 11 кадром графического ресурса;
- 2 - будет отображаться разделитель и второе значение из поля val2, разделитель также из 11 кадра графики;
- 3 - "нет (улучш.)" - поставив параметр время в это значение, каунтер будет правильно выравниваться в соответствии с параметром "выравнивание".
- 0 - будет отображенно число без форматирование во временную единицу.
- отображать дробную часть ( showfloat ) - Отображать дробную часть
- разрядов не менее ( digitsnum) - отображает минимально фиксированное число разрядов(как на счётчиках) например при значении параметра 5 и значении счётчика 18 будет отображаться 00018.
Группа - времена:
- невидимости ( tmBeg ) - Время невидимости перед открытием;
- открытия ( tmOpn ) - Время проявления от полной прозрачности к прозрачности, заданной в модификаторах;
- закрытия ( tmCls ) - Время исчезания до полной прозрачности;
- изменения ( tmChg ) - Время, за которое счетчик изменяется (inc, dec);
- шага изменения ( tmChgIt ) - Скорость, с которой счетчик изменяется (inc, dec).
- скорость изменения ( velChg) - Время промежутков, через которые происходит обновление счетчика при изменении (inc, dec).
- сохранять в профиль ( prof ):
- 1 - значение будет сохранено в текущий профиль;
- 0 - сохранено глобально.
- игра ( game ) - Имя игры (раздела в опциях), который надо вычитать для получения начального значения счетчика (например, для отображения результатов).
- уровень ( level ) - Имя уровня (параметра в разделе игра - см.выше), который надо вычитать для получения начального значения счетчика (например, для отображения результатов). Раздел равен: game.level.
- Группа - шрифт:
- имя ( fn ):
- число, начиная с 0 - порядковый номер шрифта (чтобы отобразился шрифт, нужно каунтеру задать ресурс (res), ресурс во вьювере отображён не будет);
- -1 - рисовать каунтер клипами.
- размер ( fs ) - Размер шрифта в пикселях;
- цвет 1 ( fc ) - Цвет текста.
Счетчик может отображать отрицательные чиста. Если для отображения используется графика, то 11-ым кадром в анимации должен быть символ "минус". Если счетчик отображается шрифтом, то можно указать цвет отрицательных чисел.
Добавляемые параметры
Меню выбора Добавляемые параметры к объектам активируется по нажатию правой кнопки мыши.
dec: при уменьшении изменить объект ( decChg ) - При уменьшении значения счетчика, изменить объект:
- объект ( obj ) - При уменьшении значения счетчика, изменить этот объект;
- состояние ( obj ) - Состояние в которое переводится объект;
- параметр ( par ) - Параметр, который мы изменяем;
- значение ( st ) - Новое значение параметра.
условие при котором происходят изменения из раздела dec ( decIf ) - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND):
- объект ( obj ) - Объект, свойства которого мы проверяем;
- состояние ( st ) - Находится ли в этом состоянии объект;
- параметр ( par ) - Имеет ли объект параметр в значении следующего поля;
- значение ( val ) - Имеет ли объект параметр из следующего поля в этом значении;
- куплено ( val ) - Имя фичи для проверки её купленности;
- нет ( not ) : Это условие должно не выполняться:
- 1 - если условие не выполняется, работает dec: при уменьшении изменить объект;
- 0 - если условие выполняется, работает dec: при уменьшении изменить объект.
при опускании под min изменить объект ( minChg ) - При уменьшении значения счетчика ниже min, изменить объект:
- объект ( obj ) - При уменьшении значения счетчика ниже min, изменить этот объект;
- состояние ( st ) - Состояние в которое переводится объект;
- параметр ( par ) - Параметр, который мы изменяем;
- значение ( val ) - Новое значение параметра.
условие при котором происходят изменения из раздела min ( minIf ) - Условие при выполнении которого происходят изменения из раздела min. Их может быть несколько (логический AND):
- объект ( obj ) - Объект, свойства которого мы проверяем;
- состояние ( st ) - Находится ли в этом состоянии объект;
- параметр ( par ) - Имеет ли объект параметр в значении следующего поля;
- значение ( val ) - Имеет ли объект параметр из следующего поля в этом значении;
- куплено ( buy ) - Имя фичи для проверки её купленности;
- нет ( not ) : Это условие должно не выполняться:
- 1 - если условие не выполняется, работает при опускании под min изменить объект;
- 0 - если условие выполняется, работает при опускании под min изменить объект.
inc: при увеличении изменить объект ( incChg ) - При увеличении значения счетчика, изменить объект:
- объект ( obj ) - При уменьшении значения счетчика, изменить этот объект;
- состояние ( st ) - Состояние в которое переводится объект;
- параметр ( par ) - Параметр, который мы изменяем;
- значение ( val ) - Новое значение параметра.
условие при котором происходят изменения из раздела inc ( incIf ) - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND):
- объект ( obj ) - Объект, свойства которого мы проверяем;
- состояние ( st ) - Находится ли в этом состоянии объект;
- параметр ( par ) - Имеет ли объект параметр в значении следующего поля;
- значение ( val ) - Имеет ли объект параметр из следующего поля в этом значении;
- куплено ( buy ) - Имя фичи для проверки её купленности;
- нет ( not ) : Это условие должно не выполняться:
- 1 - если условие не выполняется, работает inc: при увеличении изменить объект;
- 0 - если условие выполняется,работает inc: при увеличении изменить объект;
при превышении max изменить объект ( maxChg ) - При увеличении значения счетчика более max, изменить объект:
- объект ( obj ) - При увеличении значения счетчика более max, изменить этот объект;
- состояние ( st ) - Состояние в которое переводится объект;
- параметр ( par ) - Параметр, который мы изменяем;
- значение ( val ) - Новое значение параметра.
условие при котором происходят изменения из раздела max ( maxIf ) - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND):
- объект ( obj ) - Объект, свойства которого мы проверяем;
- состояние ( st ) - Находится ли в этом состоянии объект;
- параметр ( par ) - Имеет ли объект параметр в значении следующего поля;
- значение ( val ) - Имеет ли объект параметр из следующего поля в этом значении;
- куплено ( buy ) - Имя фичи для проверки её купленности;
- нет ( not ) : Это условие должно не выполняться:
- 1 - если условие не выполняется, работает при превышении max изменить объект;
- 0 - если условие выполняется,работает при превышении max изменить объект;
Состояния
Объект Counter обладает рядом состояний:
- dec - Уменьшить значение счетчика на 1;
- inc - Увеличить значение счетчика на 1;
- min - Установить счетчик в минимальное значение;
- max - Установить счетчик в максимальное значение;
- init - Переинициализировать счетчик;
- reset - Переустановить счетчик;
- read - Прочитать значение счетчика из опций;
- read_anim - Прочитать значение счетчика из поля в опциях; При этом: воспринимает параметры tmChg, tmChgIt, velChg. Это значит, что счетчик при передаче ему этого состояния, "прокручивает" графику до значения, считанного из опций. Это заменяет используемую связку последовательного изменения dval, передачи init и inc.
- save - Сохранить значение счетчика в опции.
Пример
В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях min, max. Начальное значение в поле val. Счетчик можно увеличивать или уменьшать, меняя ему состояния inc (увеличить на 1) и dec (уменьшить на 1).
Рассмотрим пример использования. Пусть есть счетчик и четыре кнопки. При помощи клика правой кнопки мыши, добавим каждой кнопке раздел "изменить состояние объекта", в котором при нажатии на кнопку будет вызываться состояние счетчика dec, inc, min, max соответственно.
В результате, при клике на кнопку inc будет происходить увеличение цифр 0 до 30 . После достижения максимальной границы, равной 30, счетчик перестанет увеличиваться. Аналогично, при клике на кнопку dec, можно уменьшить значения счетчика. Клик на кнопку min и max переводят значение счетчика в минимальное и максимальное значение соответственно.
По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "выравнивание" установить в 1, то неподвижным будет левый край. При значении этого параметра 2, неподвижным будет центр числа. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе).
Прямое изменение значения.
Значение счетчика можно изменить напрямую, например, их машины состояний:
st = "wait" { click { go="change" } // при клике - идем в состояние "change" } st = "change" { set { obj=counter par="val" val="5" } // меняем значение счетчика set { obj=counter st="reset" } // переустанавливаем его wait{ go="wait" } }
При клике на машину, она переходит в состояние "change". В этом состоянии устанавливается параметр счетчика val в значение 5, после чего он перезапускается, переводясь в состояние "reset" (параметр val является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val".
Достижение границ.
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения min и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). При достижении границ счетчика можно изменить состояния или параметры других объектов. Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:
при опускании под min изменить объект:
- объект - При уменьшении значения счетчика ниже min, изменить этот объект;
- состояние - Состояние в которое переводится объект;
- параметр - Параметр, который мы изменяем;
- значение - Новое значение параметра.
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
Подобных разделов может быть несколько. Если счетчик стал равным минимальному значению, а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов.
Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре). После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close". При закрытии окна и повторной попытке нажать на кнопку, окно должно появляться снова. Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика):
Значение из options.
Начальное значение счетчика можно задавать не только в редакторе (поле val), но и получать его сохраненное значение в опциях игры. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores".
Если помимо поля "уровень" задано поле "игра", то значение для счетчика будет искаться не в глобальных параметрах опций, а в разделе, определяемом полем "игра". Если строка в поле "игра" разделено точками, то они определяют подразделы. Так, если "уровень"="scores", а "игра"="puzzle.pack1", а xml файл options.xml будет выглядеть примерно так:
<obj nm="options" > <puzzle> <pack1 scores="3" /> </puzzle> </obj>
то начальное значение счетчика будет равно 3. Если такого раздела или поля не окажется, то счетчик будет невидимым.
Напомним, что объект Options в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный.