0

我正在使用 Artemis-odb 框架在 Java 中编码游戏(https://github.com/junkdog/artemis-odb)。

我想实例化一些实体(例如,建筑物和人/工人)。我还看到了框架的 EntityManager 类并尝试使用它。

这是我的问题:

  • 我不想拥有一个扩展 EntityManager 并拥有所有“创建”方法的大型类,因为这将是一个糟糕的类 --> 太多的代码行,没有 lisibility,不,谢谢。
  • 我尝试创建扩展 EntityManager 的多个类,但是每个类都有其“nextId”值(它可以知道要赋予新实体的 id)-> 我获得了具有相同 id 的多个实体。
  • 如果我创建多个类并仅引用一个 EntityManager,则无法访问 EntityManager 的 create 方法,因为该方法受到保护。
  • 我尝试的另一个解决方案是仅使用静态方法创建不同的类并引用 EntityManager。但是由于另一个原因(我省略了细节),我的 EntityManagers 需要具有非静态方法。

你有什么可行的解决方案吗?目前没有太多关于这个框架的文档,所以它有点复杂!

谢谢,

4

1 回答 1

0

我回答我的问题,以防它对某人有用。

最后,我没有使用框架的 EntityManager 类。我为我需要的东西(建筑物、工人等)创建了几个 EntityManager,并让它们从 BaseSystem 继承。有了这个,我可以通过这个世界来接触他们,做我想做的事。

于 2018-05-10T11:30:08.103 回答