Как сделать таймер в констракт 2

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

я делаю игру на construct 3 начал недавно осваивать это направление, есть некоторые сложности.

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

Знаю, что это нужно решать через запуск таймера и сравнение времени, через юникс время, но как реализовать не знаю. То есть в момент клика по кнопке "построить" должен пойти запрос на сайт worldtimeapi от туда возвращается время в миллисекундах, ответ нужно закинуть в переменную.
Далее при входе в игру, сравнивается точно также время, закидывается в другую переменную, и далее вычитается переменная 2 из переменной 1, таким образом показывается остаток таймера или вовсе то что здание построено.

Проблема в том, что я знаю как это все сделать теоретически, но как именно это все записать, чтобы оно работало не знаю.

Бро, можешь подсказать по констракту, я уже весь интернет перерыл, но не могу найти ответ, потому что не знаю как сформулировать то, что мне нужно. Я делаю стратегию и у меня есть отдельные лояуты с зданиями, в которых модно прокачивать их уровень, когда нажимаешь на кнопку прокачки, запускается таймер, по завершению которого происходит повышение уровня. Но проблема в том, что при переключении на другой лояут этот таймер замерает, как я понимаю потому что скрипты работают только при активном лояуте, а мне нужно чтобы это все прокачивалось не только пока игрок играет и находится в игре, но и ещё когда игра выключена.
Можешь подсказать как это рееализовать?

GreatAss Олег Копылов

очень полезно спасибо.

Shakhin

Не восьмерка, а логическая "и"

Absentiy

У меня версия construct 2 r239 и в ней есть поведение таймер. Потому я не вижу смысла делать свой собственный таймер.( Хотя это наверное зависит от версии констракта)

Mag Woo

Мне очень понравилось )
Мне только кажется что можно было переменные не глобальные делать а на объект какой нибудь прицепить их

В статье рассказывается, как создать таймер на сайт, используя только HTML, CSS и JavaScript. Вот что мы хотим получить:

Основные функции таймера:

  • Отображение оставшегося времени.
  • Преобразование времени в формат MM:SS.
  • Изменение цвета, когда оставшееся время приближается к нулю.
  • Отображение оставшегося времени в виде анимированного кольца.

Шаг 1. Начните с базовой разметки и стилей

Далее используем CSS, чтобы:

  • Установить размер таймера обратного отсчета.
  • Удалить заливку и обводку из элемента круга.
  • Установить ширину и цвет кольца.

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

Шаг 1. Начните с базовой разметки и стилей

Шаг 2. Настройка временной метки

HTML-код содержит пустой элемент для отображения оставшегося время. Мы добавим сюда соответствующее значение в формате MM:SS с помощью метода formatTimeLeft.

После этого мы используем только что созданный метод в шаблоне.

Чтобы вывести значение внутри кольца, нужно обновить стили.

Шаг 2. Настройка временной метки

Теперь заставим таймер отсчитывать от 20 до 0.

Шаг 3: Обратный отсчет

У нас есть значение timeLimit, которое представляет собой начальное время. А также значение timePassed, которое указывает, сколько времени прошло с момента начала отсчета.

Увеличим значение timePassed на секунду и пересчитаем timeLeft с помощью функции setInterval . Для этого реализуем метод startTimer, который будет:

  • Устанавливать интервал счетчика.
  • Увеличивать значение timePassed каждую секунду.
  • Пересчитывать значение timeLeft.
  • Обновлять значение метки в шаблоне.

Сохраним ссылку на этот объект интервала в переменной timerInterval, чтобы очистить его при необходимости.

У нас есть метод, который запускает таймер обратного отсчета. С его помощью запустим таймер.

Теперь таймер отсчитывает время. Реализуем изменение цвета временной метки при различных значениях.

Шаг 4: Перекрываем кольцо таймера другим кольцом

Чтобы визуализировать отсчет времени, добавим к кольцу второй слой, который будет обрабатывать анимацию. Для этого расположим новое зеленое кольцо поверх оригинального, чтобы получился своего рода индикатор выполнения.

Сначала добавим элемент path в SVG.

После этого добавим несколько стилей, чтобы круговая траектория выглядела как оригинальное серое кольцо. Важно, чтобы свойство stroke-width принимало значение, равное размеру исходного кольца. А также чтобы длительность transition была ​​установлена ​​на 1 секунду.

Но кольцо таймера пока не анимируется.

Шаг 4: Перекрываем кольцо таймера другим кольцом

Для анимации линии оставшегося времени мы будем использовать свойство stroke-dasharray.

Шаг 5. Анимация кольца прогресса

Посмотрим, как будет выглядеть кольцо с различными значениями stroke-dasharray.

Шаг 5. Анимация кольца прогресса

Свойство stroke-dasharray делит оставшееся кольцо времени на отрезки равной длины. Это происходит, когда мы задаем stroke-dasharray число от 0 до 9.

Посмотрим, как это свойство будет себя вести, если передать ему два значения: 10 и 30.

Шаг 5. Анимация кольца прогресса - 2

stroke-dasharray: 10 30

Это устанавливает длину первой секции (оставшегося времени) на 10, а второй секции (прошедшего времени) – на 30. Мы можем использовать это в нашем таймере обратного отсчета.

Нужно, чтобы кольцо покрыло всю окружность. То есть, оставшееся время равно длине окружности кольца.

Вычислить длину дуги можно по следующей формуле:

Это значение используется при первоначальном наложении кольца.


stroke-dasharray: 283 283

Первое значение в массиве – это оставшееся время, а второе – прошедшее. Теперь нам нужно манипулировать первым значением. Вот что произойдет, когда изменяется первое значение.


Создадим метод для подсчета оставшейся доли начального времени. Еще один – для вычисления значения stroke-dasharray и обновление элемента

, представляющего оставшееся время.

Также необходимо обновлять контур каждую секунду. Для этого вызовем метод setCircleDasharray внутри timerInterval.

Но анимация отстает на 1 секунду. Когда мы достигаем 0, все еще виден кусочек кольца.


Эту проблему можно решить, постепенно уменьшая длину кольца во время обратного отсчета в методе calculateTimeFraction.

Шаг 6: Изменение цвета в определенные моменты времени

Сначала добавим два порога, которые будут указывать, когда нужно добавить цвета для каждого из состояний. Начинаем с зеленого, затем переходим к оранжевому (в качестве предупреждения), а затем к красному, когда время почти истекло.

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

Мы удаляем один класс CSS, когда таймер обратного отсчета достигает определенной точки, и добавляем вместо него другой. Объявим эти классы.

Все готово. Ниже приводится полная демо-версия:

Дайте знать, что вы думаете по данной теме материала в комментариях. За комментарии, дизлайки, отклики, лайки, подписки огромное вам спасибо!

Пожалуйста, оставляйте ваши комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, лайки, отклики, дизлайки, подписки!

Не зря нам показали место где искать! Копали у церкви разрушенной большевиками! Обалдели от находок!

Не зря нам показали место где искать! Копали у церкви разрушенной большевиками! Обалдели от находок!

Батюшка показал где был подземный вход в церковь! Здесь никогда не копали! Находки на каждом шагу!

Батюшка показал где был подземный вход в церковь! Здесь никогда не копали! Находки на каждом шагу!

КИНОХРОНИКА БИТВЫ ЗА БЕРЛИН

КИНОХРОНИКА БИТВЫ ЗА БЕРЛИН

Черные копатели Эски-Кермена 2

Черные копатели Эски-Кермена 2

НА КАЖДОМ ШАГУ металл АБСОЛЮТНО ВЕЗДЕ .

НА КАЖДОМ ШАГУ металл АБСОЛЮТНО ВЕЗДЕ .

Недавние находки

Фото приколы - Может быть показалось?

Фото приколы - Может быть показалось?

По сети гуляет масса фото-приколов, смысл которых не понять с первого взгляда. Какие-то из них очень даже безобидные, другие, наоборот из разряда 1.

Находка оружия по наводке деда

Находка оружия по наводке деда

Многие поисковики сталкиваются с легендами об утонувших танках, закопанных подводах с золотом и. Читать >>>

Как Зинаида Михайловна попала на фрон и спасла 321 человека

Как Зинаида Михайловна попала на фрон и спасла 321 человека

Расскажу историю своей прабабушки, она прошла Великую Отечественную войну, при жизни ее застать не смог. Читать >>>

Коп по боевым местам в Волгоградской области (видео)

Коп по боевым местам в Волгоградской области (видео)

Стандартный выезд на коп. На этот раз - в Волгоградскую область, в район знаменитого сражения, после. Читать >>>

Читайте также: