#godot
Вопрос:
Я хочу определить, касается ли кинематическое тело области. Я знаю, как работает сигнал ввода тела, и я знаю, как определить, когда кинематическое тело входит в зону, но как я могу продолжать обнаруживать столкновение, пока тела все еще соприкасаются?
Я не хочу запускать код только тогда, когда тела впервые сталкиваются, я хочу запускать его до тех пор, пока они соприкасаются.
Ответ №1:
Одним из решений является создание «пула» объектов, находящихся в столкновении, таких как:
func _on_body_entered(_body):
colliding_pool.append(_body)
func _on_body_exited(_body):
# this is optional and depends on your case
if colliding_pool.has(_body) and is_instance_valid(_body):
colliding_pool.erase(_body)
Затем вы можете включить в свой цикл обработку, если возникнут конфликты, основанные на том, что этот пул не пуст. Вы также можете сохранить его в одной переменной, а не в массиве объектов, эту часть лучше адаптировать в зависимости от ваших потребностей.