В настоящее время я занимаюсь разработкой Scala, но мне нужно интегрироваться с библиотеками, такими как box2d, для управления физикой.Проблема заключается в том, что это требует зависимости от внешней библиотеки, которая управляет своим собственным состоянием.Вы отслеживаете тела, которые вы передаете в мир box2d.Подводя итог аспектам в игре:
- Box2d управляет состоянием в мире и изменяет их после каждого тика / шага
- Вы создаете (используя FP) тела, которые передаются вэтот мир
- Box2d внутренне изменяет состояние этих тел
- Для отслеживания объектов, на которые вы ссылаетесь,
- Скорее всего, вы захотите использовать информациюв теле для визуализации вашего кода, поэтому я предполагаю, что единственный способ отслеживать эту информацию - отслеживать все ссылки в изменяемой коллекции.Нужно пережить все кадры.
Итак, мой вопрос:
Как вы можете элегантно отслеживать эти ссылки (для функционального программирования) и как минимизировать влияние, которое он оказывает начистота в остальной части вашего кода?
Такие вещи, как государственные монады, не помогут мне здесь, я думаю