我目前正在玩 Scala 开发,但我需要与 box2d 等库集成来处理物理。问题是这需要依赖于管理自己状态的外部库。你跟踪你传入 box2d 世界的物体。总结一下游戏中的各个方面:
- Box2d 管理世界中的状态并在每个滴答/步骤后修改它们
- 您创建(使用 FP)传递到这个世界的身体
- Box2d 在内部修改这些物体的状态
- 要跟踪对象,请保留对它们的引用
- 您很可能希望使用正文中的信息来呈现您的代码,因此我认为跟踪该信息的唯一方法是跟踪可变集合中的所有引用。它需要在所有帧中存活。
所以我的问题是:
您如何以优雅的方式(用于函数式编程)跟踪这些引用,以及如何将其对其余代码纯度的影响降至最低?
我猜像状态单子这样的东西在这里对我没有帮助