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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Достижение границ)
(Достижение границ)
Строка 127: Строка 127:
 
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них).
 
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них).
 
При достижении границ счетчика можно изменить состояния или параметры других объектов.
 
При достижении границ счетчика можно изменить состояния или параметры других объектов.
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел "'''min: изменить объект'''". Кликнув на него выбрать необходимое сочетание из:
+
Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел:
* '''объект'''   - который меняем
+
* '''состояние''' - новое состояние объекта
+
[[Файл:+.png]] '''при опускании под min изменить объект'''
* '''параметр''' - изменяемый параметр объекта
+
*'''объект''' - При уменьшении значения счетчика ниже min, изменить этот объект.
* '''значение''' - новое значение параметра
+
*'''состояние''' - Состояние в которое переводится объект.
 +
*'''параметр''' - Параметр, который мы изменяем.
 +
*'''значение''' - Новое значение параметра.
 +
 
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
 
При изменении параметра переинициализировать объект не надо (это произойдет автоматически).
  

Версия 06:48, 24 июля 2013

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).

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