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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Примеры применений)
м (Основные параметры и свойства таймера)
 
(не показано 28 промежуточных версий 9 участников)
Строка 1: Строка 1:
 +
{{TOC right}}
 
== Общие сведения ==
 
== Общие сведения ==
  
Данный объект предназначен для различных действий в игре связанных со временем. Например: длительность игры на каком-то из уровней, время между ходами и т.д. Он может использоваться в качестве таймера (время отнимается) и секундомера (время наращивается).
+
Данный [[Object|объект]] предназначен для различных действий в игре связанных со временем. Например: длительность игры на каком-то из уровней, время между ходами и т.д. Он может использоваться в качестве таймера (время отнимается) и секундомера (время наращивается).
  
 
Таймер может управляться такими игровыми объектами как [[HiddenList]], а также другими игровыми объектами которые смогут передавать ему различные состояния.
 
Таймер может управляться такими игровыми объектами как [[HiddenList]], а также другими игровыми объектами которые смогут передавать ему различные состояния.
Строка 7: Строка 8:
 
== Основные параметры и свойства таймера ==
 
== Основные параметры и свойства таймера ==
  
[[Файл:timer.JPG|right]]
+
[[Файл:Timer 01.jpg|right]]
 
* '''тип''' - тип объекта
 
* '''тип''' - тип объекта
 
* '''имя''' - имя объекта
 
* '''имя''' - имя объекта
 
* '''синхронизация''' - синхронизация между лейаутами
 
* '''синхронизация''' - синхронизация между лейаутами
 +
 
* '''положение'''
 
* '''положение'''
 
** '''x''' - положение объекта по оси х
 
** '''x''' - положение объекта по оси х
 
** '''y''' - положение объекта по оси y
 
** '''y''' - положение объекта по оси y
 +
 
* '''размер'''
 
* '''размер'''
 
** '''w''' - ширина объекта в пикслях
 
** '''w''' - ширина объекта в пикслях
 
** '''h''' - высота объекта в пикселях
 
** '''h''' - высота объекта в пикселях
 +
 
* '''модификаторы'''
 
* '''модификаторы'''
 
** '''alpha''' - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)
 
** '''alpha''' - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)
 +
** '''blending''' - Alpha смешивание
 
** '''angle''' - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.
 
** '''angle''' - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.
 
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
 
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
 
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
 
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
 +
 
* '''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим
 
* '''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим
* '''память''' - если 1 - не обновляет свои параметры при последующем открытии экрана, 0 - обновляет
+
* '''память''' - если 1 - не обновляет свои параметры при последующем открытии экрана, 0 - обновляет . '''Если таймер подвязан к опциям''' и включена память, то таймер не будет перевычитывать значение из опций после получения состояний '''init''', '''run'''
* '''состояние'''
+
 
 +
* '''cостояние''' - начальное состояние таймера:
 
** '''beg''' - начальное состояние (таймер не идет)
 
** '''beg''' - начальное состояние (таймер не идет)
 
** '''run''' - запуск таймера  
 
** '''run''' - запуск таймера  
Строка 34: Строка 41:
 
** '''stop''' - останавливает таймер, если потом он будет запущен снова, то пойдет с нуля
 
** '''stop''' - останавливает таймер, если потом он будет запущен снова, то пойдет с нуля
 
** '''save''' - записывает текущее значение в опции под именем, указанным в ключе (игра, уровень)
 
** '''save''' - записывает текущее значение в опции под именем, указанным в ключе (игра, уровень)
Состояние - начальное состояние таймера
+
 
 +
* '''отладка''' - отображать в окне состояний текущий объект
 
* '''значение''' - начальное значение таймера в ms
 
* '''значение''' - начальное значение таймера в ms
 
* '''дельта''' - используется в состояниях add и del, количество времени которое будет добавлено или удалено из таймера (время в секундах)
 
* '''дельта''' - используется в состояниях add и del, количество времени которое будет добавлено или удалено из таймера (время в секундах)
 +
* '''остановка без кликов''' - если > 0, то таймер остановится, если кликов не было более заданного числа секунд
 
* '''обратный ход''' - если "0" объект "таймер" работает, как секундомер (время увеличивается), если "1", то работает как таймер (время отнимается)
 
* '''обратный ход''' - если "0" объект "таймер" работает, как секундомер (время увеличивается), если "1", то работает как таймер (время отнимается)
 +
* '''отображать дни''' - параметр days (количество дней), необходим для настройки отображения таймера. Настраивается во "внешний вид".
 +
* '''настройки при автозаполнении''' - перегружать - экономика меняет настройки отображения HH:MM:SS(обратная совместимость); сохранять - настройки задаются в лейауте.
 +
* '''прогресс''' - прогрессбар, отображающий то же, что и таймер
 +
* '''выравнивание''' - Выравнивание отображаемого времени 0 - центр, 1 - лево, 2 - право
 +
 
* '''графика'''
 
* '''графика'''
** '''res''' - основной графический ресурс для таймера, в качестве графического ресурса подгружается анимация из 10 фреймов, на которых изображены числа от 0 до 1
+
** '''res''' - основной графический ресурс для таймера, в качестве графического ресурса подгружается анимация из 10 фреймов, на которых изображены числа от 0 до 9
** '''цифры нормальные''' - поле куда добавляется анимация цифр в нормальном виде(не обязательно заполнять, если таймер будет использоваться в одном режиме)
+
** '''цифры нормальные''' - поле куда добавляется анимация цифр в нормальном виде (не обязательно заполнять, если таймер будет использоваться в одном режиме)
 
** '''цифры окончания''' - анимация цифр, которая будут показываться в том случае, когда время таймера будет истекать
 
** '''цифры окончания''' - анимация цифр, которая будут показываться в том случае, когда время таймера будет истекать
 
** '''цифры при добавлении''' - анимация цифр, которая будет показываться в том случае, когда к таймеру было добавлено время
 
** '''цифры при добавлении''' - анимация цифр, которая будет показываться в том случае, когда к таймеру было добавлено время
Строка 48: Строка 62:
 
** '''двоеточие при добавлении''' - графика двоеточия, будет использовать при прибавлении время к таймеру
 
** '''двоеточие при добавлении''' - графика двоеточия, будет использовать при прибавлении время к таймеру
 
** '''двоеточие при удалении''' - графика двоеточия, будет использовать при удалении время от таймера
 
** '''двоеточие при удалении''' - графика двоеточия, будет использовать при удалении время от таймера
 +
 +
* '''шрифт'''
 +
** '''имя''' - номер шрифта - целое число, начиная с 0 (порядковый номер шрифта), а если -1 то рисовать каунтер клипами
 +
** '''размер''' - размер шрифта в пикселях
 +
** '''цвет 1''' - цвет текста
 +
 
* '''внешний вид'''
 
* '''внешний вид'''
 +
** '''дни''' - 0 - прятать, 1 - отображать, 2 - отображать всегда два разряда, 3 - отображать, когда дней больше, чем в days, 4 - отображать только дни, когда дней больше, чем в days, 5 - отображать две макс. единицы времени (если применить 5, сколько бы ни было времени, будут показываться максимальные два разряда, к примеру dd:hh, если 3д 04ч).
 +
** '''часы''' - 0 - прятать, 1 - отображать, 2 - отображать, если время больше одного часа
 +
** '''минуты''' - 0 - прятать, 1 - отображать
 +
** '''секунды''' - 0 - прятать, 1 - отображать, 2 - отображать, если время меньше одного часа
 
** '''dx''' - сдвинуть все относительно подложки вдоль х  
 
** '''dx''' - сдвинуть все относительно подложки вдоль х  
 
** '''dy''' - сдвинуть все относительно подложки вдоль y
 
** '''dy''' - сдвинуть все относительно подложки вдоль y
 
** '''dx между цифрами''' - расстояние между цифрами внутри разряда, между hh или mm
 
** '''dx между цифрами''' - расстояние между цифрами внутри разряда, между hh или mm
 
** '''dx от ":"''' - расстояние между разрядами и клипом двоеточия (справа и слева от него)
 
** '''dx от ":"''' - расстояние между разрядами и клипом двоеточия (справа и слева от него)
** '''ускорение''' - кэффициент ускорения, когда таймер находится в состоянии fast
+
** '''разделитель после дней''' - символ, который отображается после разряда дней. Если указан, двоеточие после разряда дней не отображается. Перетаскивается из текстового редактора
** '''сохранять в профиль''' - если "0" - то не сохраняет значение в профиль, а значит значение будет глобальным
+
** '''разделитель после часов''' - символ, который отображается после разряда часов. Если указан, двоеточие после разряда часов не отображается. Перетаскивается из текстового редактора
** '''игра''' - ключ (параметр), совместно с параметром '''игра''' образует переменную, с помощью которой можно управлять таймерому
+
** '''разделитель после минут''' - символ, который отображается после разряда минут. Если указан, двоеточие после разряда минут не отображается. Перетаскивается из текстового редактора
** '''уровень''' - совместно с параметром '''игра''' образует переменную, с помощью которой можно управлять таймером
+
** '''разделитель после секунд''' - символ, который отображается после разряда секунд. Если указан, двоеточие после разряда секунд не отображается. Перетаскивается из текстового редактора
 +
 
 +
* '''часы''' - Число разрядов для отображения часов
 +
* '''ускорение''' - коэффициент ускорения, когда таймер находится в состоянии fast
 +
* '''сохранять в профиль''' - если "0" - то не сохраняет значение в профиль, а значит значение будет глобальным
 +
* '''сохранять при потере фокуса''' - Если ==1, то таймер будет сохранять себя при потере фокуса
 +
* '''игра''' - ключ (параметр), совместно с параметром '''уровень''' образует переменную, с помощью которой можно управлять таймерому
 +
* '''уровень''' - совместно с параметром '''игра''' образует переменную, с помощью которой можно управлять таймером (Строит заметить, что при переходе объекта в состояние init - он автоматически считывает значение, записанное по адресу игра.уровень в [[Options|Options]]. При этом таймер не имеет состояния read, как [[Counter|Counter]])
 
* '''Время истекло: изменить состояние объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта
 
* '''Время истекло: изменить состояние объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта
 
* '''Время истекло: изменить параметр (свойство) объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта
 
* '''Время истекло: изменить параметр (свойство) объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта
  
 +
== Добавляемые параметры ==
 +
 +
[[Файл:+.png]] '''Время на исходе: изменить состояние объекта''' - по истечению времени перевести объект в новое состояние:
 +
* значение - значение, при котором сработает обработчик;
 +
* объект - по истечению времени перевести объект в состояние из следующего поля;
 +
* состояние - новое состояние для объекта из предыдущего поля.
 +
 +
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта:
 +
* объект - по истечению времени перевести объект в состояние из следующего поля;
 +
* состояние - новое состояние для объекта из предыдущего поля.
 +
 +
[[Файл:+.png]] '''Время истекло: изменить параметр (свойство) объекта''' - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта:
 +
* объект - по истечению времени перевести объект в состояние из следующего поля;
 +
* свойство - параметр, который мы изменяем;
 +
* значение - новое значение параметра.
  
 
== Основные состояние ==
 
== Основные состояние ==
Строка 65: Строка 111:
 
Следует помнить следующие основные состояния:  '''run''', '''beg''', '''pause''', '''save''', '''stop''', '''fast''','''add''','''del'''. Эти состояния используется чаще всего.<br>
 
Следует помнить следующие основные состояния:  '''run''', '''beg''', '''pause''', '''save''', '''stop''', '''fast''','''add''','''del'''. Эти состояния используется чаще всего.<br>
 
Состояния таймеру мы можем передавать с помощью любого игрового объекта который может менять состояние другому объекту.<br>
 
Состояния таймеру мы можем передавать с помощью любого игрового объекта который может менять состояние другому объекту.<br>
 
+
*'''run''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то снимет с нее) ( таймер подвязанный к опциям схватит время из опций, если не стоит память)<br>
 
+
*'''start''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то сбросит его и запустит заново)<br>
'''run''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то снимет с нее)<br>
+
*'''pause''','''stop''' - состояние которое передаем таймеру для его остановки<br>
'''start''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то сбросит его и запустит заново)<br>
+
*'''save''' - если заполнены поля "игра и уровень" то таймер запишет свое значение в [[Options]]<br>
'''pause''','''stop''' - состояние которое передаем таймеру для его остановки<br>
+
*'''fast''' - состояние ускоренного хода таймера, ускорение определяется параметром ускорение в настройках таймера, или можно передавать параметром(fast) с помощью другого объекта. <br>
'''save''' - если заполнены поля "игра и уровень" то таймер запишет свое значение в [[Options]]<br>
+
*'''add''' - состояние добавления времени к таймеру, добавляемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта. <br>  
'''fast''' - состояние ускоренного хода таймера, ускорение определяется параметром ускорение в настройках таймера, или можно передавать параметром(fast) с помощью другого объекта. <br>
+
*'''del''' - состояние вычитания времени из таймера, вычитаемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта.<br>
'''add''' - состояние добавления времени к таймеру, добавляемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта. <br>  
+
*'''value''' - состояние при котором таймер в своё поле "value" запишет текущее значение в мсек. (Если вызвать до инита объекта, может записать "левое число").
'''del''' - состояние вычитания времени из таймера, вычитаемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта.<br>
 
  
 
== Примеры применений ==
 
== Примеры применений ==
 
Благодаря разнообразию состояний таймера есть возможность гибкой их настройки под различные проекты.<br>
 
Благодаря разнообразию состояний таймера есть возможность гибкой их настройки под различные проекты.<br>
Например, можно считать время проведенное на уровне, время между двумя ходами, время затраченное на один ход, также если есть время, то можно высчитать и скорость и расстояние при наличии необходимых данных. Можно привязать игровое время в [[Flurry]] и отправлять количество минут проведенных в той или другой локации и т.д.<br><br>
+
Например, можно считать время проведенное на уровне, время между двумя ходами, время затраченное на один ход, также если есть время, то можно высчитать и скорость и расстояние при наличии необходимых данных. Можно привязать игровое время в [[Flurry]] и отправлять количество минут проведенных в той или другой локации и т.д.<br>
 
 
 
 
 
Предположим, есть необходимость запустить таймер, для этого, с помощью какого-то объекта необходимо задать таймеру состояние '''run'''.<br>
 
Предположим, есть необходимость запустить таймер, для этого, с помощью какого-то объекта необходимо задать таймеру состояние '''run'''.<br>
 
Предварительно нужно настроить его в зависимости от того, в каком режиме нужно использовать его. <br>
 
Предварительно нужно настроить его в зависимости от того, в каком режиме нужно использовать его. <br>
Строка 86: Строка 129:
 
Если указать таймеру состояние '''beg''' или '''init''', то таймер сбросится в свое первоначальное значение.<br>
 
Если указать таймеру состояние '''beg''' или '''init''', то таймер сбросится в свое первоначальное значение.<br>
 
Чтобы оперировать значением таймера, необходимо сохранить его значение. Для этого ему нужно указать ключи: игра, уровень. А в нужный момент, когда нужно, чтобы таймер сохранил свое значение необходимо последовательно ему задать два состояния: сперва нужно поставить на паузу с помощью состояния '''pause''', а потом указать состояние '''save'''. В этом случае, таймер сохранит свое текущее значение в параметр, который образует ключ игра/уровень.<br>
 
Чтобы оперировать значением таймера, необходимо сохранить его значение. Для этого ему нужно указать ключи: игра, уровень. А в нужный момент, когда нужно, чтобы таймер сохранил свое значение необходимо последовательно ему задать два состояния: сперва нужно поставить на паузу с помощью состояния '''pause''', а потом указать состояние '''save'''. В этом случае, таймер сохранит свое текущее значение в параметр, который образует ключ игра/уровень.<br>
Если указать таймеру состояние '''fast''', то он должен начать идти быстрее с коэффициентом ускорения указанным в соответствующем поле. (это бывает необходимо в тех случаях, когда игрок делает подряд необдуманные ходы и нужно показать ему, что нельзя наугад делать ходы, наказать игрока)
+
Если указать таймеру состояние '''fast''', то он должен начать идти быстрее с коэффициентом ускорения указанным в соответствующем поле. (это бывает необходимо в тех случаях, когда игрок делает подряд необдуманные ходы и нужно показать ему, что нельзя наугад делать ходы, наказать игрока)<br>
 +
Состояниями '''add''' либо '''del''' можно поощрять игрока за хорошую игру прибавлением времени к таймеру, или наказывать - вычитанием при беспорядочных кликах и т.д.
 +
 
 +
[[Файл:Timer11.jpg|1000px]]
 +
 
 +
Результат вьювера:
 +
 
 +
[[Файл:Timer21.jpg|600px]]
 +
 
 +
'''Проект с таймером и демонстрацией его состояний можно посмотреть: s:\!MOBILE\!!!EditorGames\Wiki_sample\'''
 +
 
 +
[[Category:Main objects]]

Текущая версия на 10:08, 15 октября 2020

Общие сведения

Данный объект предназначен для различных действий в игре связанных со временем. Например: длительность игры на каком-то из уровней, время между ходами и т.д. Он может использоваться в качестве таймера (время отнимается) и секундомера (время наращивается).

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

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

Timer 01.jpg
  • тип - тип объекта
  • имя - имя объекта
  • синхронизация - синхронизация между лейаутами
  • положение
    • x - положение объекта по оси х
    • y - положение объекта по оси y
  • размер
    • w - ширина объекта в пикслях
    • h - высота объекта в пикселях
  • модификаторы
    • alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)
    • blending - Alpha смешивание
    • angle - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.
    • scale x - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
    • scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
  • z - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим
  • память - если 1 - не обновляет свои параметры при последующем открытии экрана, 0 - обновляет . Если таймер подвязан к опциям и включена память, то таймер не будет перевычитывать значение из опций после получения состояний init, run
  • cостояние - начальное состояние таймера:
    • beg - начальное состояние (таймер не идет)
    • run - запуск таймера
    • fast - таймер работает с ускорением( кооф. ускорения задаем в "ускорение" )
    • pause - таймер перходит в состояние паузы. (снять с паузы состоянием - run, fast)
    • add - добавление времени к таймеру
    • del - отнимание времен из таймера
    • end - конечное состояние таймера
    • stop - останавливает таймер, если потом он будет запущен снова, то пойдет с нуля
    • save - записывает текущее значение в опции под именем, указанным в ключе (игра, уровень)
  • отладка - отображать в окне состояний текущий объект
  • значение - начальное значение таймера в ms
  • дельта - используется в состояниях add и del, количество времени которое будет добавлено или удалено из таймера (время в секундах)
  • остановка без кликов - если > 0, то таймер остановится, если кликов не было более заданного числа секунд
  • обратный ход - если "0" объект "таймер" работает, как секундомер (время увеличивается), если "1", то работает как таймер (время отнимается)
  • отображать дни - параметр days (количество дней), необходим для настройки отображения таймера. Настраивается во "внешний вид".
  • настройки при автозаполнении - перегружать - экономика меняет настройки отображения HH:MM:SS(обратная совместимость); сохранять - настройки задаются в лейауте.
  • прогресс - прогрессбар, отображающий то же, что и таймер
  • выравнивание - Выравнивание отображаемого времени 0 - центр, 1 - лево, 2 - право
  • графика
    • res - основной графический ресурс для таймера, в качестве графического ресурса подгружается анимация из 10 фреймов, на которых изображены числа от 0 до 9
    • цифры нормальные - поле куда добавляется анимация цифр в нормальном виде (не обязательно заполнять, если таймер будет использоваться в одном режиме)
    • цифры окончания - анимация цифр, которая будут показываться в том случае, когда время таймера будет истекать
    • цифры при добавлении - анимация цифр, которая будет показываться в том случае, когда к таймеру было добавлено время
    • цифры при удалении - анимация цифр, которая будет показываться в том случае, когда от таймера было отнято время
    • двоеточие нормальное - графика двоеточия, которое разделяет секунды, минуты, подгражается обычный графический ресурс двоеточия
    • двоеточие окончания - графика двоеточия, которое показывается в случае, когда у таймера истекает время
    • двоеточие при добавлении - графика двоеточия, будет использовать при прибавлении время к таймеру
    • двоеточие при удалении - графика двоеточия, будет использовать при удалении время от таймера
  • шрифт
    • имя - номер шрифта - целое число, начиная с 0 (порядковый номер шрифта), а если -1 то рисовать каунтер клипами
    • размер - размер шрифта в пикселях
    • цвет 1 - цвет текста
  • внешний вид
    • дни - 0 - прятать, 1 - отображать, 2 - отображать всегда два разряда, 3 - отображать, когда дней больше, чем в days, 4 - отображать только дни, когда дней больше, чем в days, 5 - отображать две макс. единицы времени (если применить 5, сколько бы ни было времени, будут показываться максимальные два разряда, к примеру dd:hh, если 3д 04ч).
    • часы - 0 - прятать, 1 - отображать, 2 - отображать, если время больше одного часа
    • минуты - 0 - прятать, 1 - отображать
    • секунды - 0 - прятать, 1 - отображать, 2 - отображать, если время меньше одного часа
    • dx - сдвинуть все относительно подложки вдоль х
    • dy - сдвинуть все относительно подложки вдоль y
    • dx между цифрами - расстояние между цифрами внутри разряда, между hh или mm
    • dx от ":" - расстояние между разрядами и клипом двоеточия (справа и слева от него)
    • разделитель после дней - символ, который отображается после разряда дней. Если указан, двоеточие после разряда дней не отображается. Перетаскивается из текстового редактора
    • разделитель после часов - символ, который отображается после разряда часов. Если указан, двоеточие после разряда часов не отображается. Перетаскивается из текстового редактора
    • разделитель после минут - символ, который отображается после разряда минут. Если указан, двоеточие после разряда минут не отображается. Перетаскивается из текстового редактора
    • разделитель после секунд - символ, который отображается после разряда секунд. Если указан, двоеточие после разряда секунд не отображается. Перетаскивается из текстового редактора
  • часы - Число разрядов для отображения часов
  • ускорение - коэффициент ускорения, когда таймер находится в состоянии fast
  • сохранять в профиль - если "0" - то не сохраняет значение в профиль, а значит значение будет глобальным
  • сохранять при потере фокуса - Если ==1, то таймер будет сохранять себя при потере фокуса
  • игра - ключ (параметр), совместно с параметром уровень образует переменную, с помощью которой можно управлять таймерому
  • уровень - совместно с параметром игра образует переменную, с помощью которой можно управлять таймером (Строит заметить, что при переходе объекта в состояние init - он автоматически считывает значение, записанное по адресу игра.уровень в Options. При этом таймер не имеет состояния read, как Counter)
  • Время истекло: изменить состояние объекта - если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта
  • Время истекло: изменить параметр (свойство) объекта - если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта

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

+.png Время на исходе: изменить состояние объекта - по истечению времени перевести объект в новое состояние:

  • значение - значение, при котором сработает обработчик;
  • объект - по истечению времени перевести объект в состояние из следующего поля;
  • состояние - новое состояние для объекта из предыдущего поля.

+.png Время истекло: изменить состояние объекта - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта:

  • объект - по истечению времени перевести объект в состояние из следующего поля;
  • состояние - новое состояние для объекта из предыдущего поля.

+.png Время истекло: изменить параметр (свойство) объекта - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта:

  • объект - по истечению времени перевести объект в состояние из следующего поля;
  • свойство - параметр, который мы изменяем;
  • значение - новое значение параметра.

Основные состояние

Следует помнить следующие основные состояния: run, beg, pause, save, stop, fast,add,del. Эти состояния используется чаще всего.
Состояния таймеру мы можем передавать с помощью любого игрового объекта который может менять состояние другому объекту.

  • run - состояние которое передаем таймеру для его запуска(если таймер был на паузе то снимет с нее) ( таймер подвязанный к опциям схватит время из опций, если не стоит память)
  • start - состояние которое передаем таймеру для его запуска(если таймер был на паузе то сбросит его и запустит заново)
  • pause,stop - состояние которое передаем таймеру для его остановки
  • save - если заполнены поля "игра и уровень" то таймер запишет свое значение в Options
  • fast - состояние ускоренного хода таймера, ускорение определяется параметром ускорение в настройках таймера, или можно передавать параметром(fast) с помощью другого объекта.
  • add - состояние добавления времени к таймеру, добавляемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта.
  • del - состояние вычитания времени из таймера, вычитаемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта.
  • value - состояние при котором таймер в своё поле "value" запишет текущее значение в мсек. (Если вызвать до инита объекта, может записать "левое число").

Примеры применений

Благодаря разнообразию состояний таймера есть возможность гибкой их настройки под различные проекты.
Например, можно считать время проведенное на уровне, время между двумя ходами, время затраченное на один ход, также если есть время, то можно высчитать и скорость и расстояние при наличии необходимых данных. Можно привязать игровое время в Flurry и отправлять количество минут проведенных в той или другой локации и т.д.
Предположим, есть необходимость запустить таймер, для этого, с помощью какого-то объекта необходимо задать таймеру состояние run.
Предварительно нужно настроить его в зависимости от того, в каком режиме нужно использовать его.
Если нам необходимо поставить игру на паузу и нужно, чтобы таймер тоже стал на паузу, то нужно указать таймеру состояние pause.
Чтобы продолжить игру нужно опять же указать ему состояние run.
Если указать таймеру состояние beg или init, то таймер сбросится в свое первоначальное значение.
Чтобы оперировать значением таймера, необходимо сохранить его значение. Для этого ему нужно указать ключи: игра, уровень. А в нужный момент, когда нужно, чтобы таймер сохранил свое значение необходимо последовательно ему задать два состояния: сперва нужно поставить на паузу с помощью состояния pause, а потом указать состояние save. В этом случае, таймер сохранит свое текущее значение в параметр, который образует ключ игра/уровень.
Если указать таймеру состояние fast, то он должен начать идти быстрее с коэффициентом ускорения указанным в соответствующем поле. (это бывает необходимо в тех случаях, когда игрок делает подряд необдуманные ходы и нужно показать ему, что нельзя наугад делать ходы, наказать игрока)
Состояниями add либо del можно поощрять игрока за хорошую игру прибавлением времени к таймеру, или наказывать - вычитанием при беспорядочных кликах и т.д.

Timer11.jpg

Результат вьювера:

Timer21.jpg

Проект с таймером и демонстрацией его состояний можно посмотреть: s:\!MOBILE\!!!EditorGames\Wiki_sample\