我将 Akka 框架与 jMonkeyEngine (jME3) 一起用于我的小 scala/java 游戏。通过调整一些Akka 调度程序的魔法,我设法在与 jME3 的主循环线程相同的线程中运行了一个专用的 Actor。为了让actor能够访问应该扩展以使用jME3创建游戏的SimpleApplication类的受保护变量,我认为创建一个继承类SimpleApplication并混合特征Actor的类会很整洁。像这样的东西:
JmeActor extends SimpleApplication with Actor
问题是 SimpleApplication 和 Actor 都有一个冲突的上下文变量。目前,我已经将 SimpleApplication 的上下文变量重命名为jmeContext并重新编译了 jME3。结果运行得很好,但对我来说,这个设计似乎被打破了,因为任何进一步的 jME3(甚至 Akka)版本都需要我再次手动完成这个重构。开发团队甚至可能(尽管不太可能)进一步修改 SimpleApplication,从而使这种冲突避免技术变得更加困难。
谁能看到一个简单的解决方案?