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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Введение)
Строка 6: Строка 6:
 
== Введение ==
 
== Введение ==
  
В качестве графического ресурса в него перетаскивается анимационный клип из 10 кадров
+
В качестве графического ресурса в счетчик перетаскивается анимационный клип из 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''' (неважные поля опущены):
+
в котором при нажатии на кнопку будет изменяться состояние счетчика на '''inc''' (неважные поля опущены):
 
<center>
 
<center>
 
[[Файл:counter1.png]]
 
[[Файл:counter1.png]]
Строка 19: Строка 19:
 
Состояния '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно.
 
Состояния '''min''' и '''max''' переводят значение счетчика в минимальное и максимальное значение соответственно.
  
По умолчанию разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''влево'''" установить в 1, то
+
По умолчанию, разряды числа счетчика сдвигаются справа налево от его положения в редакторе (неподвижен правый край числа). Если в свойствах счетчика поле "'''влево'''" установить в 1, то
 
неподвижным будет левый край. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе).
 
неподвижным будет левый край. Параметр "dx между цифрами" задает дополнительное расстояние между цифрами в числе (если он меньше нуля, цифры будут ближе).
 
Если начальное значение не попадает в диапазон min, max (например, val=-1), то счетчик становится невидимым.
 
  
 
== Прямое изменение значения ==
 
== Прямое изменение значения ==
Строка 41: Строка 39:
 
</pre>  
 
</pre>  
 
При клике на машину, она переходит в состояние "change".  
 
При клике на машину, она переходит в состояние "change".  
В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "reset" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных) настроек. В состоянии "reset" обновляется только поле "val".
+
В этом состоянии устанавливается параметр счетчика '''val''' в значение 5, после чего он перезапускается, переводясь в состояние "'''reset'''" (параметр '''val''' является строковым и счетчику его нужно перечитать, что и делается в состоянии "reset"). Аналогично счетчик можно было бы перевести в состояние "init", но тогда он бы полностью переинитился (обновились бы все его параметры из начальных настроек). В состоянии "reset" обновляется только поле "val".
 
 
Напомним, что если устанавливаемое значение не попадает в диапазон min, max, то счетчик окажется невидимым.
 
  
 
== Достижение границ ==
 
== Достижение границ ==
Строка 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 (неважные поля опущены):

Counter1.png

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

Файл:Counter3.png

Значение из options

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

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

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

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

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