|
|
Строка 1: |
Строка 1: |
− | {{TOC right}}
| |
− | == Общие сведения ==
| |
| | | |
− | Данный [[Object|объект]] предназначен для различных действий в игре связанных со временем. Например: длительность игры на каком-то из уровней, время между ходами и т.д. Он может использоваться в качестве таймера (время отнимается) и секундомера (время наращивается).
| |
− |
| |
− | Таймер может управляться такими игровыми объектами как [[HiddenList]], а также другими игровыми объектами которые смогут передавать ему различные состояния.
| |
− |
| |
− | == Основные параметры и свойства таймера ==
| |
− |
| |
− | [[Файл:Timer 01.jpg|right]]
| |
− | * '''тип''' - тип объекта
| |
− | * '''имя''' - имя объекта
| |
− | * '''синхронизация''' - синхронизация между лейаутами
| |
− |
| |
− | * '''положение'''
| |
− | ** '''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|Options]]. При этом таймер не имеет состояния read, как [[Counter|Counter]])
| |
− | * '''Время истекло: изменить состояние объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта
| |
− | * '''Время истекло: изменить параметр (свойство) объекта''' - если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта
| |
− |
| |
− | == Добавляемые параметры ==
| |
− |
| |
− | [[Файл:+.png]] '''Время на исходе: изменить состояние объекта''' - по истечению времени перевести объект в новое состояние:
| |
− | * значение - значение, при котором сработает обработчик;
| |
− | * объект - по истечению времени перевести объект в состояние из следующего поля;
| |
− | * состояние - новое состояние для объекта из предыдущего поля.
| |
− |
| |
− | [[Файл:+.png]] '''Время истекло: изменить состояние объекта''' - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит состояние какого-то объекта:
| |
− | * объект - по истечению времени перевести объект в состояние из следующего поля;
| |
− | * состояние - новое состояние для объекта из предыдущего поля.
| |
− |
| |
− | [[Файл:+.png]] '''Время истекло: изменить параметр (свойство) объекта''' - по истечению времени перевести объект в новое состояние. Если достигнет нуля, то есть используется, как таймер, он изменит параметр какого-то объекта:
| |
− | * объект - по истечению времени перевести объект в состояние из следующего поля;
| |
− | * свойство - параметр, который мы изменяем;
| |
− | * значение - новое значение параметра.
| |
− |
| |
− | == Основные состояние ==
| |
− |
| |
− | Следует помнить следующие основные состояния: '''run''', '''beg''', '''pause''', '''save''', '''stop''', '''fast''','''add''','''del'''. Эти состояния используется чаще всего.<br>
| |
− | Состояния таймеру мы можем передавать с помощью любого игрового объекта который может менять состояние другому объекту.<br>
| |
− | *'''run''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то снимет с нее) ( таймер подвязанный к опциям схватит время из опций, если не стоит память)<br>
| |
− | *'''start''' - состояние которое передаем таймеру для его запуска(если таймер был на паузе то сбросит его и запустит заново)<br>
| |
− | *'''pause''','''stop''' - состояние которое передаем таймеру для его остановки<br>
| |
− | *'''save''' - если заполнены поля "игра и уровень" то таймер запишет свое значение в [[Options]]<br>
| |
− | *'''fast''' - состояние ускоренного хода таймера, ускорение определяется параметром ускорение в настройках таймера, или можно передавать параметром(fast) с помощью другого объекта. <br>
| |
− | *'''add''' - состояние добавления времени к таймеру, добавляемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта. <br>
| |
− | *'''del''' - состояние вычитания времени из таймера, вычитаемое время определяется параметром дельта в настройках таймера, или можно передать параметром(delta) с помощью другого объекта.<br>
| |
− | *'''value''' - состояние при котором таймер в своё поле "value" запишет текущее значение в мсек. (Если вызвать до инита объекта, может записать "левое число").
| |
− |
| |
− | == Примеры применений ==
| |
− | Благодаря разнообразию состояний таймера есть возможность гибкой их настройки под различные проекты.<br>
| |
− | Например, можно считать время проведенное на уровне, время между двумя ходами, время затраченное на один ход, также если есть время, то можно высчитать и скорость и расстояние при наличии необходимых данных. Можно привязать игровое время в [[Flurry]] и отправлять количество минут проведенных в той или другой локации и т.д.<br>
| |
− | Предположим, есть необходимость запустить таймер, для этого, с помощью какого-то объекта необходимо задать таймеру состояние '''run'''.<br>
| |
− | Предварительно нужно настроить его в зависимости от того, в каком режиме нужно использовать его. <br>
| |
− | Если нам необходимо поставить игру на паузу и нужно, чтобы таймер тоже стал на паузу, то нужно указать таймеру состояние '''pause'''.<br>
| |
− | Чтобы продолжить игру нужно опять же указать ему состояние '''run'''.<br>
| |
− | Если указать таймеру состояние '''beg''' или '''init''', то таймер сбросится в свое первоначальное значение.<br>
| |
− | Чтобы оперировать значением таймера, необходимо сохранить его значение. Для этого ему нужно указать ключи: игра, уровень. А в нужный момент, когда нужно, чтобы таймер сохранил свое значение необходимо последовательно ему задать два состояния: сперва нужно поставить на паузу с помощью состояния '''pause''', а потом указать состояние '''save'''. В этом случае, таймер сохранит свое текущее значение в параметр, который образует ключ игра/уровень.<br>
| |
− | Если указать таймеру состояние '''fast''', то он должен начать идти быстрее с коэффициентом ускорения указанным в соответствующем поле. (это бывает необходимо в тех случаях, когда игрок делает подряд необдуманные ходы и нужно показать ему, что нельзя наугад делать ходы, наказать игрока)<br>
| |
− | Состояниями '''add''' либо '''del''' можно поощрять игрока за хорошую игру прибавлением времени к таймеру, или наказывать - вычитанием при беспорядочных кликах и т.д.
| |
− |
| |
− | [[Файл:Timer11.jpg|1000px]]
| |
− |
| |
− | Результат вьювера:
| |
− |
| |
− | [[Файл:Timer21.jpg|600px]]
| |
− |
| |
− | '''Проект с таймером и демонстрацией его состояний можно посмотреть: s:\!MOBILE\!!!EditorGames\Wiki_sample\'''
| |
− |
| |
− | [[Category:Main objects]]
| |