Найти в Дзене

№71. Запуск события единожды внутри _process.

Функция _process отрабатывает код 60 раз в секунду, и бывает так, что нам внутри этой функции надо запустить условие один раз.
В демо сцене два объекта при пересечении переключают переменную enter = 1, и по этому условию выводим в аутпут слово «action».
В выводе получим вполне предсказуемый результат.
Для ограничения исполнения условия можно добавить еще одну переменную.

Функция _process отрабатывает код 60 раз в секунду, и бывает так, что нам внутри этой функции надо запустить условие один раз.

В демо сцене два объекта при пересечении переключают переменную enter = 1, и по этому условию выводим в аутпут слово «action».

В выводе получим вполне предсказуемый результат.

-2

Для ограничения исполнения условия можно добавить еще одну переменную.
Впоследствии сравнивать с этой переменной и сразу её переключать.

-3
-4

Этот вариант, в зависимости от переменной либо отрабатываться единожды пока объекты пересекаются, либо единожды вообще (для этого просто не переключайте sound в 1 при выходе из пересечений).

Второй вариант- Мы можем запустить функцию всего один раз.

Для этого используйте аргумент при подключении сигнала CONNECT_ONESHOT.

-5

Чтобы вас не смущало, я в примере использовал кастомный сигнал «Test»,
который эмитится при пересечении объектов.

P.S.
Да, автор в курсе что сигнал от ареа2Д и так отрабатывается единожды.
Суть этой заметки в том, чтобы показать способы когда условие всегда true.

Подписывайтесь на канал, и вступайте в группу в ВК.