1

小さな scala/java ゲームのために、jMonkeyEngine (jME3) と一緒に Akka フレームワークを使用しています。Akka ディスパッチャ マジックをいくつか適用することで、専用のアクターを jME3 のメイン ループ スレッドと同じスレッドで実行することができました。アクターが、jME3 でゲームを作成するために拡張する必要があるクラス SimpleApplication の保護された変数にアクセスできるようにするには、クラス SimpleApplication を継承し、トレイト Actorを混合するクラスを作成するのが適切であると考えました。このようなもの:

JmeActor extends SimpleApplication with Actor

問題は、SimpleApplication と Actor の両方に、互いに衝突するコンテキスト変数があることです。とりあえず、SimpleApplication のコンテキスト変数をjmeContextにリネームして、jME3を再コンパイルしました。結果はかなりうまくいきましたが、jME3 (または Akka でさえも) の今後のリリースでは、このリファクタリングを手動でもう一度やり直す必要があるため、設計自体が壊れているように思えます。可能性は低いかもしれませんが、開発チームによって SimpleApplication がさらに変更され、この衝突回避手法がさらに難しくなる可能性さえあります。

誰でもこれに対する簡単な解決策を見ることができますか?

4

1 に答える 1