Алгоритм реализации часов

Dried:

Изображение

В данной статье я хотел бы поделиться способом реализации часов в приложении с использованием глобальных переменных и объекта "Text".

Я решил написать этот урок, потому что не так давно задавал на форуме вопрос, касающийся именно этой темы, на который я не получил ответа. И теперь когда нашел решение этой проблемы решил поделиться с другими.




Урок простой и не вызовет затруднений даже у неопытных пользователей Construct'a.

Итак,
Все что нужно это:

1) Объект "Text".
2) Глобальные переменные, которыми обозначим часы минуты и секунды (в моем случае это hou, min, sec)

Создадим событие:
Условие System->Always
Действие Text->Set Text->"Часы: " &(Global('Hou'. &"Минуты: " &(Global('Min'. &"Секунды: " &(Global('Sec'.

Изображение

Этим событием мы определяем содержание текста на экране, а также то, что текст отображается постоянно.

Далее:
Условие System->Every X Milliseconds
Действие System->Add to Value (Sec, 30 в моем случае)

Изображение

Здесь мы задаём комманду, что каждые n-ное количество милисекунд добавляется значение 1 к общему значению секунд. По сути дела в этом событии задается скорость часов в общем. Это полезно, к примеру, для ролевых игр, где необходимо реализовать смену дня и ночи так за более короткий период, применение может быть самым разнообразным (яркий пример Fallout, в этой игре похожая система времени, время идет быстрее обычного).

Для справки 1000 милисекунд = 1 секунда.

Движемся далее. Настал черед задать события, определяющие правильное течение времени, ведь единицы измерения времени в определенный момент обнуляются.

Условие System->Compare Global Variable
Действие System->Set Value (в моем случае переменная секунд "sec") задаем значение "0"
Действие System->Add to value (в моем случае это переменная "min") задаем значение "1"

Изображение

Это событие определяет, когда 60 секунд переходят в 1 минуту, тем самым секунд становится 0, а минут 1.

Следующее событие аналогично предыдущему, только вместо переменой секунд будет переменная минут, а вместо переменной минут - переменная часов. Т.е. обнуляются минуты, а значение "1" добавляется к часам.

Подробные объяснения я считаю излишними:

Изображение

По аналогии с предыдущими двумя событиями можно сделать, в зависимости от того как именно необходимо, 12-часовую (Am/Pm) или 24-часовую систему отсчета времени, а также добавить подсчет календаря в каком угодно формате.

Вывод: При помощи нехитрых и простых манипуляций с объектом "Text" и глобальными переменными можно добиться полной реализации практически всего что связано с течением времени в своих приложения (ну разве что slow motion не получится создать Чуть не забыл, исходник данного урока:

Скачать исходник clock.cap