Throttle и Debounce

Плагин предоставляет доступ к двум особым условиям: Не чаще чем раз в <X> секунд и На отложенное событие.

Если вы предпочитаете использовать JavaScript, то вы можете ознакомиться со статьями: Debounce на примере формы поиска и Throttle на примере изменения страницы при прокрутке.

Throttle

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

Из-за сложности подобных вычислений лучше избегать их использования слишком часто. Для таких случаев обычно используют Каждые <X> секунд, чтобы запускать код раз в некоторое время, но это не всегда возможно.

Например, у нас есть какая-то сложная игровая механика, которая выполняется при нажатии на экран. В таких ситуациях, когда нужно ограничить частоту выполнения кода, но вы не можете использовать таймер, вы можете воспользоваться особым условием Не чаще чем раз в <X> секунд.

Важно

Не рекомендуется использовать Не чаще чем раз в <X> секунд каждый тик, это не повлечет за собой никаких последствий, но вместо этого лучше использовать Каждые <X> секунд.

Скриншот Construct 3: две строки с 3 ячейками. 1 строка — иконка «ОК» и текст «Кнопка», «При нажатии», «Yan» | «Отложить событие setScore на 2 секунды». 2 строка — «YandexGames», «На отложенное событие "setScore"», «Yan» | «Отправить счет 5 в таблицу лидеров "score" с данными ""».

Debounce

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

Например, если вы слишком часто обновляете счет в лидерборде, то вам стоит использовать особое условие На отложенное событие вместе с триггерным условием Отложить выполнение. Эта связка работает по аналогии с нативной связкой Сигнал → При получении сигнала, но откладывает вызов на определенное время с момента последней попытки выполнения.

Однако его можно спутать с предыдущим условием Не чаще чем раз в <X> секунд, ведь мы его тоже использовали, чтобы спрятать код, который не должен вызываться слишком часто.

Основное их различие в том, что Не чаще чем раз в <X> секунд ограничивает частоту вызова, а На отложенное событие откладывает вызов функции на определенное время. Это именно то, что нам нужно, ведь нам не обязательно выполнять функцию слишком часто, нужно лишь не превышать ограничение.

Визуализация разницы между Не чаще чем раз в <X> секунд и На отложенное событие:


Примечание

Если при работе с плагином вы столкнулись с проблемой или у вас появился вопрос, обратитесь в сообщество в Телеграме или в сообщество ВКонтакте.

Репозиторий
Предыдущая
Следующая