Эй, ребята! Мой физический движок работает довольно хорошо (спасибо за вопрос!), И я готов начать работу над еще более продвинутым мусором. В данном случае я пытаюсь настроить свой механизм коллизий, чтобы произвольный делегат мог получать уведомления о коллизиях. Позвольте мне настроить сценарий для вас:
Скажем, у нас есть объект A, объект B и объект C в физическом моделировании. Я хочу иметь возможность проинформировать делегата о коллизии между A и B, И проинформировать потенциально РАЗНОГО делегата о коллизии между A и C.
Небольшая справочная информация: у меня есть известный интерфейс для делегата, у меня есть возможность сохранять состояние для моего детектора столкновений (но не atm), и я могу сохранять состояние в самих объектах. Точно так же я использую эту модель делегата для обработки разрешения коллизий, просто устанавливая физический движок в качестве делегата для всех объектов по умолчанию, позволяя пользователю изменять делегат при желании.
Теперь я уже пытался, чтобы каждый объект сохранял свой собственный делегат коллизии, который был бы проинформирован, когда коллизия произошла. Это не сработало, потому что, когда у объектов был один и тот же делегат столкновения, одно и то же столкновение обрабатывалось дважды. Когда я переключился на использование только делегата первого объекта (однако это было решено), порядок симуляции стал проблемой. Я хочу использовать словарь, но это вносит значительные накладные расходы. Тем не менее, похоже, что мне нужно идти в этом направлении.
Итак, вот вопрос: сражайтесь до смерти за подходящее решение. Как бы вы решили эту проблему?