Я предполагаю, что у вас есть некоторый метод обновления кадров, который вызывается каждый кадр, а также вы можете подсчитать, сколько времени прошло (секунд) с тех пор. Затем, вы можете сделать следующее: переменный флаг с именем contactInProgress
, установите false
- Setup.
- Установите переменную счетчика с именем
contactDuration
, установите ее на 0.0
.
- При обнаружении столкновения установите
contactInProgress
на true
и contactDuration
на 0.0
.
- Когда вы больше не обнаруживаете столкновение, установите
contactInProgress
назад на false и сбрасывают contactDuration
в 0.0
.
- В способе обновления рамки проверьте,
contactInProgress
is true
. Если это так, обновите значение contactDuration
, добавив время, прошедшее с момента последнего кадра. Наконец, проверьте, является ли contactDuration
больше или равно 2.0
. Если да, сделайте свое дело.