Разница между страницами «Timer» и «Файл:Lesson7 hiddenlist params .png»

Материал из wiki.appsalutecreator.com
(Различия между страницами)
Перейти к: навигация, поиск
м (Основные параметры и свойства таймера)
 
 
Строка 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]]
 

Версия 14:08, 13 октября 2023