【问题标题】:What is the best Way for Interfacing with Ogre(C++) in a Java Application?在 Java 应用程序中与 Ogre(C++) 交互的最佳方式是什么?
【发布时间】:2012-01-19 12:48:40
【问题描述】:

我有一个 Java 应用程序并想在其中连接 Ogre。 具体来说,Ogre 是一个 3D 游戏引擎库,其中包含大量复杂的 C++ 对象。我有多种选择来完成此操作

1.)使用原始 JNI(JNI 相当复杂,很难)

2.)使用 SWIG + JNI(有点简单......但仍然涉及 JNI)

3.) 使用 Lua 并且不使用 JNI(使用 lua 绑定到 Ogre)...基本上使用 Lua 会有所帮助,因为将 C++ 库与 Lua 连接起来要容易得多,并且从 java 调用 Lua 也不会太难。

4.)使用 Ogre4j(使用 JNI 与 Ogre 的 Java 绑定...但是这个项目并没有使用最新的 Ogre 版本进行更新)

考虑到未来对 Ogre 的维护/升级,哪些/看起来是最佳选择?

选项 3 值得尝试吗?

【问题讨论】:

  • 为什么要使用 Java 中的 Ogre?为什么不找一个 Java 游戏引擎,或者用 C++ 编写您的应用程序?

标签: java c++ ogre


【解决方案1】:

我想建议第 5 个选项:JNA https://github.com/twall/jna,以前的 java.net 项目。

我的推理:选项 1 和 2 太低级,3 是 imho 实验性的(你提到“大量复杂的 C++ 对象”),而 4 号肯定缺乏更新。 JNA 仍在维护、开源 (LGPL)、文档化和跨平台(尽管文档/示例可能相反)。

更新:
我听说了第 6 个选项,即 "inspired by JNA":BridJ http://code.google.com/p/bridj/FAQWiki 很好地解释了差异及其背后的原因。 BridJ 是活跃且开源的(BSD 和 Apache 许可证)。

【讨论】:

    【解决方案2】:

    也许我们可以使用 XBiG 来生成 Java 代码,就像 ogre4j 一样。实际上,XBiG 源代码有一个生成 ogre4j 源代码的测试,它就是为完成这项工作而设计的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多