Counter — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Добавляемые параметры)
 
(не показано 56 промежуточных версий 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 '') - Начальное (текущее)  значение счетчика.
*'''выравнивание''' - Если 1, то число будет выравниваться по левому краю (цифры числа сдвигаются слева направо). 2 - по центру. Иначе, выравнивание по правому краю.
+
*'''val2''' ('' val2 '') - Дополнительное значение счетчика. Только для время == 2.
*'''время''' - Если 1, то число будет считаться временем в секундах и отображаться в виде mm:ss. Двоеточие должно быть 11 кадром графического ресурса.
+
*'''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>
  
*'''сохранять в профиль''' - Если 1, то значение будет сохранено в текущий профиль, если 0 - то глобально.
 
*'''игра''' - Имя игры (раздела в опциях), который надо вычитать для получения начального значения счетчика (например, для отображения результатов).
 
*'''уровень''' - Имя уровня (параметра в разделе игра - см.выше), который надо вычитать для получения начального значения счетчика (например, для отображения результатов). Раздел равен: game.level
 
 
== Добавляемые параметры ==
 
== Добавляемые параметры ==
  
  
 
[[Файл:Counte_1.png|right]]
 
[[Файл:Counte_1.png|right]]
Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши.
+
Меню выбора ''Добавляемые параметры'' к объектам активируется по нажатию правой кнопки мыши.
 +
 
  
[[Файл:+.png]] '''dec: при уменьшении изменить объект''' - При уменьшении значения счетчика, изменить объект.
+
[[Файл:+.png]] '''dec: при уменьшении изменить объект''' ('' decChg '') - При уменьшении значения счетчика, изменить объект:
*'''объект''' - При уменьшении значения счетчика, изменить этот объект.
+
*'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект;
*'''состояние''' - Состояние в которое перводится объект.
+
*'''состояние''' ('' obj '') - Состояние в которое переводится объект;
*'''параметр''' - Параметр, который мы изменяем.
+
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
*'''значение''' - Новое значение параметра.
+
*'''значение''' ('' st '') - Новое значение параметра.
  
== Введение ==
 
'''Счетчик''' является целым положительным числом, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов в игре, оставшихся доступных подсказок и т.п. Может быть невидимым для хранения целого числа, используемого, например, [[Machine|машинами состояний]].
 
  
В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела dec''' ('' decIf '') - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND):
с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1).
+
*'''объект''' ('' 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]] '''inc: при увеличении изменить объект''' ('' incChg '') - При увеличении значения счетчика, изменить объект:
При помощи правой кнопки мыши на кнопке btn_inc добавим раздел "изменить состояние объекта",
+
*'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект;
в котором при нажатии на кнопку будет изменяться состояние счетчика на '''inc''' (неважные поля опущены):
+
*'''состояние''' ('' st '') - Состояние в которое переводится объект;
<center>
+
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
[[Файл:counter1.png]]
+
*'''значение''' ('' val '') - Новое значение параметра.
</center>
 
В результате, при клике на кнопку будет происходить увеличение цифр 0 до 10 . После достижения максимальной границы, равной 10, счетчик перестанет увеличиваться.
 
Аналогично, при помощи состояния '''dec''', можно уменьшить значения счетчика.
 
Состояния '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно.
 
  
По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''влево'''" установить в 1, то
 
неподвижным будет левый край. При значении этого параметра 2, неподвижным будет центр числа. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе).
 
  
== Параметры ==
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела inc''' ('' incIf '') - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND):
 +
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
 +
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
 +
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
 +
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
 +
*'''куплено''' ('' buy '') - Имя фичи для проверки её купленности;
 +
*'''нет''' ('' not '') : Это условие должно не выполняться:
 +
:'''1''' - если условие не выполняется, работает '''inc: при увеличении изменить объект''';
 +
:'''0''' - если условие выполняется,работает '''inc: при увеличении изменить объект''';
  
  
 +
[[Файл:+.png]] '''при превышении max изменить объект''' ('' maxChg '') - При увеличении значения счетчика более max, изменить объект:
 +
*'''объект''' ('' obj '') - При увеличении значения счетчика более max, изменить этот объект;
 +
*'''состояние''' ('' st '') - Состояние в которое переводится объект;
 +
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
 +
*'''значение''' ('' val '') - Новое значение параметра.
  
Правой кнопой мыши можно добавить такие параметры:
 
  
*'''dec: при уменьшении изменить объект''' - При уменьшении значения счетчика, изменить объект.
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела max''' ('' maxIf '') - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND):
 +
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
 +
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
 +
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
 +
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
 +
*'''куплено''' ('' buy '') - Имя фичи для проверки её купленности;
 +
*'''нет''' ('' not '') : Это условие должно не выполняться:
 +
:'''1''' - если условие не выполняется, работает '''при превышении max изменить объект''';
 +
:'''0''' - если условие выполняется,работает '''при превышении max изменить объект''';
  
*'''условие при котором происходят изменения из раздела dec''' - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND).
+
== Состояния ==
  
*'''при опускании под min изменить объект''' - При уменьшении значения счетчика ниже min, изменить объект.
+
Объект '''Counter''' обладает рядом состояний:
 +
*'''dec''' - Уменьшить значение счетчика на 1;
 +
*'''inc''' - Увеличить значение счетчика на 1;
 +
*'''min''' - Установить счетчик в минимальное значение;
 +
*'''max''' - Установить счетчик в максимальное значение;
 +
*'''init''' - Переинициализировать счетчик;
 +
*'''reset''' - Переустановить счетчик;
 +
*'''read''' - Прочитать значение счетчика из опций;
 +
*'''read_anim''' - Прочитать значение счетчика из поля в опциях; При этом: воспринимает параметры tmChg,  tmChgIt, velChg. Это значит, что счетчик при передаче ему этого состояния, "прокручивает" графику до значения, считанного из опций. Это заменяет используемую связку последовательного изменения dval, передачи init и inc.
 +
*'''save''' - Сохранить значение счетчика в опции.
  
*'''условие при котором происходят изменения из раздела min''' - Условие при выполнении которого происходят изменения из раздела min. Их может быть несколько (логический AND).
+
== Пример ==
  
*'''inc: при увеличении изменить объект''' - При увеличении значения счетчика, изменить объект.
 
  
*'''условие при котором происходят изменения из раздела inc''' - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND).
+
В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров
 +
с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1).
  
*'''при превышении max изменить объект''' - При увеличении значения счетчика более max, изменить объект.
+
Рассмотрим пример использования. Пусть есть счетчик и четыре кнопки. При помощи клика правой кнопки мыши, добавим каждой кнопке раздел "изменить состояние объекта", в котором при нажатии на кнопку будет вызываться состояние счетчика '''dec''', '''inc''', '''min''', '''max''' соответственно.
 +
<center>
 +
[[Файл:test_cnt_1.png]]
 +
</center>
 +
В результате, при клике на кнопку '''inc''' будет происходить увеличение цифр 0 до 30 . После достижения максимальной границы, равной 30, счетчик перестанет увеличиваться. Аналогично, при клике на кнопку '''dec''', можно уменьшить значения счетчика. Клик на кнопку '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно.
  
*'''условие при котором происходят изменения из раздела max''' - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND).
+
По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''выравнивание'''" установить в 1, то неподвижным будет левый край. При значении этого параметра 2, неподвижным будет центр числа. Параметр "'''dx между цифрами'''" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе).
  
  
== Прямое изменение значения ==
+
'''Прямое изменение значения.'''
  
 
Значение счетчика можно изменить напрямую, например, их машины состояний:
 
Значение счетчика можно изменить напрямую, например, их машины состояний:
Строка 93: Строка 176:
 
В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val".
 
В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val".
  
== Достижение границ ==
+
 
 +
'''Достижение границ.'''
  
 
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них).
 
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них).
 
При достижении границ счетчика можно изменить состояния или параметры других объектов.
 
При достижении границ счетчика можно изменить состояния или параметры других объектов.
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел "'''min: изменить объект'''". Кликнув на него выбрать необходимое сочетание из:
+
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:
* '''объект'''   - который меняем
+
* '''состояние''' - новое состояние объекта
+
[[Файл:+.png]] '''при опускании под min изменить объект''':
* '''параметр''' - изменяемый параметр объекта
+
:'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект;
* '''значение''' - новое значение параметра
+
:'''состояние''' - Состояние в которое переводится объект;
 +
:'''параметр''' - Параметр, который мы изменяем;
 +
:'''значение''' - Новое значение параметра.
 +
 
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
  
Строка 107: Строка 194:
 
а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов.
 
а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов.
  
Существуют следующие варианты разделов изменения состояния других объектов:
+
Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре). После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close". При закрытии окна и повторной попытке нажать на кнопку, окно должно появляться снова.
* "'''min: изменить объект'''" - при попытке счетчика уменьшиться ниже минимальной границы
 
* "'''max: изменить объект'''" - при попытке счетчика перейти выше максимальной границы
 
* "'''dec: изменить объект'''" - при уменьшении счетчика
 
* "'''inc: изменить объект'''" - при увеличении счетчика
 
 
 
Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре).
 
После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close".
 
При закрытии окна и повторой попытке нажать на кнопку, окно должно появляться снова.
 
 
Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика):
 
Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика):
 
<center>
 
<center>
Строка 121: Строка 200:
 
</center>
 
</center>
  
== Значение из options ==
+
 
 +
'''Значение из options.'''
  
 
Начальное значение счетчика можно задавать не только в редакторе (поле '''val'''), но и получать его сохраненное значение в [[Options|опциях игры]]. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores".
 
Начальное значение счетчика можно задавать не только в редакторе (поле '''val'''), но и получать его сохраненное значение в [[Options|опциях игры]]. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores".
Строка 141: Строка 221:
  
 
Напомним, что объект  [[Options]] в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный.
 
Напомним, что объект  [[Options]] в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный.
 +
 +
[[Category:Main objects]]

Текущая версия на 12:30, 1 августа 2018

Counte.jpg

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-ым кадром в анимации должен быть символ "минус".
Если счетчик отображается шрифтом, то можно указать цвет отрицательных чисел.

Добавляемые параметры

Counte 1.png

Меню выбора Добавляемые параметры к объектам активируется по нажатию правой кнопки мыши.


+.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 inc: при увеличении изменить объект ( incChg ) - При увеличении значения счетчика, изменить объект:

  • объект ( obj ) - При уменьшении значения счетчика, изменить этот объект;
  • состояние ( st ) - Состояние в которое переводится объект;
  • параметр ( par ) - Параметр, который мы изменяем;
  • значение ( val ) - Новое значение параметра.


+.png условие при котором происходят изменения из раздела inc ( incIf ) - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND):

  • объект ( obj ) - Объект, свойства которого мы проверяем;
  • состояние ( st ) - Находится ли в этом состоянии объект;
  • параметр ( par ) - Имеет ли объект параметр в значении следующего поля;
  • значение ( val ) - Имеет ли объект параметр из следующего поля в этом значении;
  • куплено ( buy ) - Имя фичи для проверки её купленности;
  • нет ( not ) : Это условие должно не выполняться:
1 - если условие не выполняется, работает inc: при увеличении изменить объект;
0 - если условие выполняется,работает inc: при увеличении изменить объект;


+.png при превышении max изменить объект ( maxChg ) - При увеличении значения счетчика более max, изменить объект:

  • объект ( obj ) - При увеличении значения счетчика более max, изменить этот объект;
  • состояние ( st ) - Состояние в которое переводится объект;
  • параметр ( par ) - Параметр, который мы изменяем;
  • значение ( val ) - Новое значение параметра.


+.png условие при котором происходят изменения из раздела 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 соответственно.

Test cnt 1.png

В результате, при клике на кнопку 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 и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). При достижении границ счетчика можно изменить состояния или параметры других объектов. Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:

+.png при опускании под min изменить объект:

объект - При уменьшении значения счетчика ниже min, изменить этот объект;
состояние - Состояние в которое переводится объект;
параметр - Параметр, который мы изменяем;
значение - Новое значение параметра.

При изменении параметра переинициализировать объект не надо (это произойдет автоматически).

Подобных разделов может быть несколько. Если счетчик стал равным минимальному значению, а его продолжают пытаться уменьшить, каждый раз будет вызываться изменение состояний (параметров) из этих разделов.

Пусть к примеру, разрешено 3 раза нажать на некоторую кнопку (например, хинт в игре). После 3-х изменений должно появляться окно с надписью "подсказки кончились" с кнопкой "close". При закрытии окна и повторной попытке нажать на кнопку, окно должно появляться снова. Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна (верхняя таблица справа - это машина состояния окна, ниже - свойства кнопки и счетчика):

Counter3a.png


Значение из options.

Начальное значение счетчика можно задавать не только в редакторе (поле val), но и получать его сохраненное значение в опциях игры. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores".

Если помимо поля "уровень" задано поле "игра", то значение для счетчика будет искаться не в глобальных параметрах опций, а в разделе, определяемом полем "игра". Если строка в поле "игра" разделено точками, то они определяют подразделы. Так, если "уровень"="scores", а "игра"="puzzle.pack1", а xml файл options.xml будет выглядеть примерно так:

<obj nm="options" >
   <puzzle>
      <pack1 scores="3" />
   </puzzle>
</obj>

то начальное значение счетчика будет равно 3. Если такого раздела или поля не окажется, то счетчик будет невидимым.

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