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> секунд и На отложенное событие:


Примечание

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

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