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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Значение из options)
 
(не показаны 24 промежуточные версии 9 участников)
Строка 1: Строка 1:
 
[[Файл:Counte.jpg|right]]
 
[[Файл:Counte.jpg|right]]
'''Счетчик''' - тип объекта, который хранит значение целого положительного числа, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов или кликов в игре, количества оставшихся подсказок и т.п. Он может быть скрыт и использоваться для хранения целого числа, необходимого для работы других объектов, например, [[Machine|машинами состояний]].
+
'''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: при уменьшении изменить объект''' ('' decChg '') - При уменьшении значения счетчика, изменить объект:
 +
*'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект;
 +
*'''состояние''' ('' obj '') - Состояние в которое переводится объект;
 +
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
 +
*'''значение''' ('' st '') - Новое значение параметра.
 +
 
  
 +
[[Файл:+.png]] '''условие при котором происходят изменения из раздела dec''' ('' decIf '') - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND):
 +
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
 +
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
 +
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
 +
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
 +
*'''куплено''' ('' val '') - Имя фичи для проверки её купленности;
 +
*'''нет''' ('' not '') : Это условие должно не выполняться:
 +
:'''1''' - если условие не выполняется, работает '''dec: при уменьшении изменить объект''';
 +
:'''0''' - если условие выполняется, работает '''dec: при уменьшении изменить объект'''.
  
[[Файл:+.png]] '''dec: при уменьшении изменить объект''' - При уменьшении значения счетчика, изменить объект.
+
 
*'''объект''' - При уменьшении значения счетчика, изменить этот объект.
+
[[Файл:+.png]] '''при опускании под min изменить объект''' ('' minChg '') - При уменьшении значения счетчика ниже min, изменить объект:
*'''состояние''' - Состояние в которое переводится объект.
+
*'''объект''' ('' obj '') - При уменьшении значения счетчика ниже min, изменить этот объект;
*'''параметр''' - Параметр, который мы изменяем.
+
*'''состояние''' ('' st '') - Состояние в которое переводится объект;
*'''значение''' - Новое значение параметра.
+
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
[[Файл:+.png]] '''условие при котором происходят изменения из раздела dec''' - Условие при выполнении которого происходят изменения из раздела dec. Их может быть несколько (логический AND).
+
*'''значение''' ('' val '') - Новое значение параметра.
*'''объект''' - Объект, свойства которого мы проверяем.
+
 
*'''состояние''' - Находится ли в этом состоянии объект.
+
 
*'''параметр''' - Имеет ли объект параметр в значении следующего поля.
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела min''' ('' minIf '') - Условие при выполнении которого происходят изменения из раздела min. Их может быть несколько (логический AND):
*'''значение''' - Имеет ли объект параметр из следующего поля в этом значении.
+
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
*'''куплено''' - Имя фичи для проверки её купленности.
+
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
*'''not''' - Это условие должно не выполняться.
+
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
[[Файл:+.png]] '''при опускании под min изменить объект''' - При уменьшении значения счетчика ниже min, изменить объект.
+
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
*'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект.
+
*'''куплено''' ('' buy '') - Имя фичи для проверки её купленности;
*'''состояние''' - Состояние в которое переводится объект.
+
*'''нет''' ('' not '') : Это условие должно не выполняться:
*'''параметр''' - Параметр, который мы изменяем.
+
:'''1''' - если условие не выполняется, работает '''при опускании под min изменить объект''';
*'''значение''' - Новое значение параметра.
+
:'''0''' - если условие выполняется, работает '''при опускании под min изменить объект'''.
[[Файл:+.png]] '''условие при котором происходят изменения из раздела min''' - Условие при выполнении которого происходят изменения из раздела min. Их может быть несколько (логический AND).
+
 
*'''объект''' - Объект, свойства которого мы проверяем.
+
 
*'''состояние''' - Находится ли в этом состоянии объект.
+
[[Файл:+.png]] '''inc: при увеличении изменить объект''' ('' incChg '') - При увеличении значения счетчика, изменить объект:
*'''параметр''' - Имеет ли объект параметр в значении следующего поля.
+
*'''объект''' ('' obj '') - При уменьшении значения счетчика, изменить этот объект;
*'''значение''' - Имеет ли объект параметр из следующего поля в этом значении.
+
*'''состояние''' ('' st '') - Состояние в которое переводится объект;
*'''куплено''' - Имя фичи для проверки её купленности.
+
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
*'''not''' - Это условие должно не выполняться.
+
*'''значение''' ('' val '') - Новое значение параметра.
[[Файл:+.png]] '''inc: при увеличении изменить объект''' - При увеличении значения счетчика, изменить объект.
+
 
*'''объект''' - При уменьшении значения счетчика, изменить этот объект.
+
 
*'''состояние''' - Состояние в которое переводится объект.
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела inc''' ('' incIf '') - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND):
*'''параметр''' - Параметр, который мы изменяем.
+
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
*'''значение''' - Новое значение параметра.
+
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
[[Файл:+.png]] '''условие при котором происходят изменения из раздела inc''' - Условие при выполнении которого происходят изменения из раздела inc. Их может быть несколько (логический AND).
+
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
*'''объект''' - Объект, свойства которого мы проверяем.
+
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
*'''состояние''' - Находится ли в этом состоянии объект.
+
*'''куплено''' ('' buy '') - Имя фичи для проверки её купленности;
*'''параметр''' - Имеет ли объект параметр в значении следующего поля.
+
*'''нет''' ('' not '') : Это условие должно не выполняться:
*'''значение''' - Имеет ли объект параметр из следующего поля в этом значении.
+
:'''1''' - если условие не выполняется, работает '''inc: при увеличении изменить объект''';
*'''куплено''' - Имя фичи для проверки её купленности.
+
:'''0''' - если условие выполняется,работает '''inc: при увеличении изменить объект''';
*'''not''' - Это условие должно не выполняться.
+
 
[[Файл:+.png]] '''при превышении max изменить объект''' - При увеличении значения счетчика более max, изменить объект.
+
 
*'''объект''' - При увеличении значения счетчика более max, изменить этот объект.
+
[[Файл:+.png]] '''при превышении max изменить объект''' ('' maxChg '') - При увеличении значения счетчика более max, изменить объект:
*'''состояние''' - Состояние в которое переводится объект.
+
*'''объект''' ('' obj '') - При увеличении значения счетчика более max, изменить этот объект;
*'''параметр''' - Параметр, который мы изменяем.
+
*'''состояние''' ('' st '') - Состояние в которое переводится объект;
*'''значение''' - Новое значение параметра.
+
*'''параметр''' ('' par '') - Параметр, который мы изменяем;
[[Файл:+.png]] '''условие при котором происходят изменения из раздела max''' - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND).
+
*'''значение''' ('' val '') - Новое значение параметра.
*'''объект''' - Объект, свойства которого мы проверяем.
+
 
*'''состояние''' - Находится ли в этом состоянии объект.
+
 
*'''параметр''' - Имеет ли объект параметр в значении следующего поля.
+
[[Файл:+.png]] '''условие при котором происходят изменения из раздела max''' ('' maxIf '') - Условие при выполнении которого происходят изменения из раздела max. Их может быть несколько (логический AND):
*'''значение''' - Имеет ли объект параметр из следующего поля в этом значении.
+
*'''объект''' ('' obj '') - Объект, свойства которого мы проверяем;
*'''куплено''' - Имя фичи для проверки её купленности.
+
*'''состояние''' ('' st '') - Находится ли в этом состоянии объект;
*'''not''' - Это условие должно не выполняться.
+
*'''параметр''' ('' par '') - Имеет ли объект параметр в значении следующего поля;
 +
*'''значение''' ('' val '') - Имеет ли объект параметр из следующего поля в этом значении;
 +
*'''куплено''' ('' buy '') - Имя фичи для проверки её купленности;
 +
*'''нет''' ('' not '') : Это условие должно не выполняться:
 +
:'''1''' - если условие не выполняется, работает '''при превышении max изменить объект''';
 +
:'''0''' - если условие выполняется,работает '''при превышении max изменить объект''';
  
 
== Состояния ==
 
== Состояния ==
  
Объект 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''' - Сохранить значение счетчика в опции.
  
 
== Пример ==
 
== Пример ==
Строка 130: Строка 183:
 
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:
 
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:
 
   
 
   
[[Файл:+.png]] '''при опускании под min изменить объект'''
+
[[Файл:+.png]] '''при опускании под min изменить объект''':
*'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект.
+
:'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект;
*'''состояние''' - Состояние в которое переводится объект.
+
:'''состояние''' - Состояние в которое переводится объект;
*'''параметр''' - Параметр, который мы изменяем.
+
:'''параметр''' - Параметр, который мы изменяем;
*'''значение''' - Новое значение параметра.
+
:'''значение''' - Новое значение параметра.
  
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
Строка 146: Строка 199:
 
[[Файл:counter3a.png]]
 
[[Файл:counter3a.png]]
 
</center>
 
</center>
 +
  
 
'''Значение из options.'''
 
'''Значение из options.'''
Строка 167: Строка 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 в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный.