Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: Ruslan от 14 Августа 2009, 12:01:40



Название: [Логика ] Trigger
Отправлено: Ruslan от 14 Августа 2009, 12:01:40
Кто знает, распишите пожалуйста, что за что отвечает?


Название: Re: [Логика ] Trigger
Отправлено: →|๖ۣۜDen|← от 14 Августа 2009, 14:22:41
·Triger on value change
В этой позиции подключённые потомки будут вызываться каждый раз, как только тригируемая величина будет меняться (не важно, меняться - расти, или меняться падать).
·Triger on value increase
В этой позиции потомки вызываются при увеличении тригируемой величины (если величина будет падать, вызова не будет).
·Triger on value decrease
В этой позиции потомки вызываются при уменьшении тригируемой величины (если величина будет расти, вызова не будет).
·Triger by direction (low to high)
Задание вызова с маленького к высокому, проще говоря - вызов потомков, когда тригируемая величина сначала меньше, чем triger at, а потом стала той, что triger at. Пример: величина была 0, она меняется на 1, triger at=1, вызов будет.
·Triger by direction (high to low)
Вызов потомков, когда тригируемая величина сначала больше чем triger at, а затем стала равной triger at. В этом случае будет вызов: было 2, становится 1 => вызов.
·Triger by direction (both)
Вызывает потомков не зависимо high to low или low to high.
·Triger with value as delay in ms
В тригируемой величине задаётся время, в милисекундах, по истчесении которого потомки будут вызываться единожды, и время пойдёт заново. В цикле.

Насчёт Triger on timestamp change (при изменении времени) даже нет информации, да и ,походу, в этой позиции вызова вообще не будет :) недоработка квестостроевцев.


Название: Re: [Логика ] Trigger
Отправлено: →|๖ۣۜDen|← от 14 Августа 2009, 15:43:32
Кажется, получилось приручить Time stamp :D
Вот, видимо, как это работает:
Если потомки вызываются после того, как изменяется время (timestamp change), то нужно получить само нынешнее время, или дату (смотря что берётся в рассчёт для изменения) через textOperator - Time/date to string (format text). Но текст не понятен тригеру, надо перевести текст в целое число. Идём к ValueOperator. У оператора можно выбрать простой преобразователь текста в число (Text to integer value(text)), который просто покажет выбранного формата цифру, или же выбрать специальный оператор (Time stamp (any channel), который смотрит на потомка, и реагирует на все изменения во времени. Так вот Time stamp оператор нам и нужен, его подключаем к тригеру, а к оператору само время/дату (Time/date to string format). Если сделать всё как написано выше, тригер будет срабатывать каждую секунду, т.к. мы не задали формат вывода даты/времени. Он по умолчанию идёт как месяц/день/год час/минута/секунда. Time stamp замечает, что меняется постоянно секунда, и делает вызов каждую секунду. Хотим мы сделать чтоб тригер работал по изменению минут? дня или месяца? может года? :) Не вопрос ;)
К самому Time/date to string (format text), можно подключить...правильно - текст :) в котором и указывается формат вывода даты времени.
Цитировать
Time/date to string

The text of this channel will be set to the current time or date. When a Text channel is linked as a child, the text of that child will be used as the format for the time and. You are able to use the following to format the time:

▪ %a - Abbreviated weekday name
▪ %A - Full weekday name
▪ %b - Abbreviated month name
▪ %B - Full month name
▪ %c - Date and time representation appropriate for locale
▪ %d - Day of month as decimal number (01 – 31)
▪ %H - Hour in 24-hour format (00 – 23)
▪ %I - Hour in 12-hour format (01 – 12)
▪ %j - Day of year as decimal number (001 – 366)
▪ %m - Month as decimal number (01 – 12)
▪ %M - Minute as decimal number (00 – 59)
▪ %p - Current locale’s A.M./P.M. indicator for 12-hour clock
▪ %S - Second as decimal number (00 – 59)
▪ %U - Week of year as decimal number, with Sunday as first day of week (00 – 53)
▪ %w - Weekday as decimal number (0 – 6; Sunday is 0)
▪ %W - Week of year as decimal number, with Monday as first day of week (00 – 53)
▪ %x - Date representation for current locale
▪ %X - Time representation for current locale
▪ %y - Year without century, as decimal number (00 – 99)
▪ %Y - Year with century, as decimal number
▪ %z, %Z - Time-zone name or abbreviation; no characters if time zone is unknown
▪ %% - Percent sign
Подключаем к Time/date to string ещё Text в котором, скажем, задаим ключ вывода текста в минутах (%M). Теперь для Time stamp будет видно только изменение минут и соответсвенно тригер будет реагировать на изменение каждую минуту, тем самым вызывая потомков ежеменутно.


Название: Re: [Логика ] Trigger
Отправлено: Ruslan от 14 Августа 2009, 15:55:16
Спасибо →|Den|← за подробное описание!