Counter — различия между версиями
Steps (обсуждение | вклад) (→Введение) |
Steps (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
== Введение == | == Введение == | ||
− | В качестве графического ресурса в | + | В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров |
с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1). | с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях '''min''', '''max'''. Начальное значение в поле '''val'''. Счетчик можно увеличивать или уменьшать, меняя ему состояния '''inc''' (увеличить на 1) и '''dec''' (уменьшить на 1). | ||
− | Рассмотрим пример | + | Рассмотрим пример использования. Пусть есть счетчик и кнопка. |
При помощи правой кнопки мыши на кнопке btn_inc добавим раздел "изменить состояние объекта", | При помощи правой кнопки мыши на кнопке btn_inc добавим раздел "изменить состояние объекта", | ||
− | в котором | + | в котором при нажатии на кнопку будет изменяться состояние счетчика на '''inc''' (неважные поля опущены): |
<center> | <center> | ||
[[Файл:counter1.png]] | [[Файл:counter1.png]] | ||
Строка 19: | Строка 19: | ||
Состояния '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно. | Состояния '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно. | ||
− | По умолчанию разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''влево'''" установить в 1, то | + | По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''влево'''" установить в 1, то |
неподвижным будет левый край. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе). | неподвижным будет левый край. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе). | ||
− | |||
− | |||
== Прямое изменение значения == | == Прямое изменение значения == | ||
Строка 41: | Строка 39: | ||
</pre> | </pre> | ||
При клике на машину, она переходит в состояние "change". | При клике на машину, она переходит в состояние "change". | ||
− | В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "reset" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных) | + | В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val". |
− | |||
− | |||
== Достижение границ == | == Достижение границ == | ||
Строка 49: | Строка 45: | ||
Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). | Пусть после серии уменьшений счетчика (состояния "dec") он достиг минимального значения '''min''' и попытался снизиться ниже. Этого не произойдет (ограничения не дают выйти за них). | ||
При достижении границ счетчика можно изменить состояния или параметры других объектов. | При достижении границ счетчика можно изменить состояния или параметры других объектов. | ||
− | Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел "min: изменить объект". Кликнув на него выбрать необходимое сочетание из: | + | Для этого необходимо в свойствах при помощи правой кнопки мыши добавить раздел "'''min: изменить объект'''". Кликнув на него выбрать необходимое сочетание из: |
* '''объект''' - который меняем | * '''объект''' - который меняем | ||
* '''состояние''' - новое состояние объекта | * '''состояние''' - новое состояние объекта | ||
Строка 69: | Строка 65: | ||
При закрытии окна и повторой попытке нажать на кнопку, окно должно появляться снова. | При закрытии окна и повторой попытке нажать на кнопку, окно должно появляться снова. | ||
Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна: | Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна: | ||
+ | <center> | ||
+ | [[Файл:counter3.png]] | ||
+ | </center> | ||
== Значение из options == | == Значение из options == |
Версия 16:28, 12 февраля 2012
Счетчик является целым положительным числом, значение которого могут изменять другие объекты. Используется для визуализации числа сделанных ходов в игре, оставшихся доступных подсказок и т.п. Может быть невидимым для хранения целого числа, используемого, например, машинами состояний.
Введение
В качестве графического ресурса в счетчик перетаскивается анимационный клип из 10 кадров с цифрами от 0 до 9 (кадров может быть больше, но первые 10 - это цифры). Диапазон изменения задается в полях min, max. Начальное значение в поле val. Счетчик можно увеличивать или уменьшать, меняя ему состояния inc (увеличить на 1) и dec (уменьшить на 1).
Рассмотрим пример использования. Пусть есть счетчик и кнопка. При помощи правой кнопки мыши на кнопке btn_inc добавим раздел "изменить состояние объекта", в котором при нажатии на кнопку будет изменяться состояние счетчика на inc (неважные поля опущены):
В результате, при клике на кнопку будет происходить увеличение цифр 0 до 10 . После достижения максимальной границы, равной 10, счетчик перестанет увеличиваться. Аналогично, при помощи состояния dec, можно уменьшить значения счетчика. Состояния min и max переводят значение счетчика в минимальное и максимальное значение соответственно.
По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "влево" установить в 1, то неподвижным будет левый край. Параметр "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". При закрытии окна и повторой попытке нажать на кнопку, окно должно появляться снова. Это можно сделать при помощи счетчика, двух кнопок, и машины состояний в виде окна:
Значение из options
Начальное значение счетчика можно задавать не только в редакторе (поле val), но и получать его сохраненное значение в опциях игры. Пусть некоторая миниигра сохранила в опциях целое значение в переменной, например, с именем "scores". Тогда это значение будет присвоено счетчику, если в настройках счетчика в поле "уровень" написать "scores".
Если помимо поля "уровень" задано поле "игра", то значение для счетчика будет искаться не в глобальных параметрах опций, а в разделе, определяемом полем "игра". Если строка в поле "игра" разделено точками, то они определяют подразделы. Так, если "уровень"="scores", а "игра"="puzzle.pack1", а xml файл options.xml будет выглядеть примерно так:
<obj nm="options" > <puzzle> <pack1 scores="3" /> </puzzle> </obj>
то начальное значение счетчика будет равно 3. Если такого раздела или поля не окажется, то счетчик будет невидимым.
Напомним, что объект Options в игре существует в единственном экземпляре и должен находиться на экране, помеченном как глобальный.