Counter

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
Counte.jpg

Счетчик - тип объекта, который хранит значение целого положительного числа, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов или кликов в игре, количества оставшихся подсказок и т.п. Он может быть скрыт и использоваться для хранения целого числа, необходимого для работы других объектов, например, машинами состояний.

Общие параметры

Смотреть описание Object.

Основные параметры

  • res - Графический ресурс для отображения цифр (анимированный клип из 10 фреймов: первый фрейм - 0, последний 9). Перетаскивается мышкой из редактора ресурсов.
  • min - Минимальное значение счетчика.
  • max - Максимальное значение счетчика
  • val - Начальное (текущее) значение счетчика.
  • new_val - Новое значение. Будет записано в val при вызове состояния save.
  • dx между цифрами - Расстояние между цифрами.
  • выравнивание - Если 1, то число будет выравниваться по левому краю (цифры числа сдвигаются слева направо). 2 - по центру. Иначе, выравнивание по правому краю.
  • время - Если 1, то число будет считаться временем в секундах и отображаться в виде mm:ss. Двоеточие должно быть 11 кадром графического ресурса.

Группа - время

  • невидимости - Время невидимости перед открытием.
  • открытия - Время проявления от полной прозрачности к прозрачности, заданной в модификаторах.
  • закрытия - Время исчезания до полной прозрачности.
  • сохранять в профиль - Если 1, то значение будет сохранено в текущий профиль, если 0 - то глобально.
  • игра - Имя игры (раздела в опциях), который надо вычитать для получения начального значения счетчика (например, для отображения результатов).
  • уровень - Имя уровня (параметра в разделе игра - см.выше), который надо вычитать для получения начального значения счетчика (например, для отображения результатов). Раздел равен: game.level

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

Counte 1.png

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


+.png dec: при уменьшении изменить объект - При уменьшении значения счетчика, изменить объект.

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

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

  • объект - Объект, свойства которого мы проверяем.
  • состояние - Находится ли в этом состоянии объект.
  • параметр - Имеет ли объект параметр в значении следующего поля.
  • значение - Имеет ли объект параметр из следующего поля в этом значении.
  • куплено - Имя фичи для проверки её купленности.
  • not - Это условие должно не выполняться.

+.png при опускании под min изменить объект - При уменьшении значения счетчика ниже min, изменить объект.

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

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

  • объект - Объект, свойства которого мы проверяем.
  • состояние - Находится ли в этом состоянии объект.
  • параметр - Имеет ли объект параметр в значении следующего поля.
  • значение - Имеет ли объект параметр из следующего поля в этом значении.
  • куплено - Имя фичи для проверки её купленности.
  • not - Это условие должно не выполняться.

+.png inc: при увеличении изменить объект - При увеличении значения счетчика, изменить объект.

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

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

  • объект - Объект, свойства которого мы проверяем.
  • состояние - Находится ли в этом состоянии объект.
  • параметр - Имеет ли объект параметр в значении следующего поля.
  • значение - Имеет ли объект параметр из следующего поля в этом значении.
  • куплено - Имя фичи для проверки её купленности.
  • not - Это условие должно не выполняться.

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

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

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

  • объект - Объект, свойства которого мы проверяем.
  • состояние - Находится ли в этом состоянии объект.
  • параметр - Имеет ли объект параметр в значении следующего поля.
  • значение - Имеет ли объект параметр из следующего поля в этом значении.
  • куплено - Имя фичи для проверки её купленности.
  • not - Это условие должно не выполняться.

Состояния

Объект Counter обладает рядом состояний:

  • dec - Уменьшить значение счетчика на 1.
  • inc - Увеличить значение счетчика на 1.
  • min - Установить счетчик в минимальное значение.
  • max - Установить счетчик в максимальное значение.
  • init - Переинициализировать счетчик.
  • reset - Переустановить счетчик.
  • read - Прочитать значение счетчика из опций.
  • save - Сохранить значение счетчика в опции.

Введение

В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях min, max. Начальное значение в поле val. Счетчик можно увеличивать или уменьшать, меняя ему состояния inc (увеличить на 1) и dec (уменьшить на 1).

Рассмотрим пример использования. Пусть есть счетчик и кнопка. При помощи правой кнопки мыши на кнопке btn_inc добавим раздел "изменить состояние объекта", в котором при нажатии на кнопку будет изменяться состояние счетчика на inc (неважные поля опущены):

Counter1.png

В результате, при клике на кнопку будет происходить увеличение цифр 0 до 10 . После достижения максимальной границы, равной 10, счетчик перестанет увеличиваться. Аналогично, при помощи состояния 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: изменить объект" - при попытке счетчика уменьшиться ниже минимальной границы
  • "max: изменить объект" - при попытке счетчика перейти выше максимальной границы
  • "dec: изменить объект" - при уменьшении счетчика
  • "inc: изменить объект" - при увеличении счетчика

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