我正在开发一个用 C++ 编写的游戏引擎。 我的引擎使用 OpenGLES2。 现在我想为 Android 创建端口,当然是使用 jni。 我还有一个用这个游戏引擎编写的游戏。
我编写了一个小型 Java 包装器来调用我用 C++ 编写的游戏中的 Init、Draw/Update 和 Terminate 方法。
同时,我的游戏将从引擎中调用 C++ 函数。
[java Android]--jni-->[c++ Game]--call-->[c++ Engine]--call-->[OpenGLES2]
问题是如何将它们链接起来。
我可以将我的游戏 C++ 代码构建到 libGame.so 并从 java 调用此库中的方法。 但是如何将游戏与引擎通信,然后将引擎与 opengles2 for Android 通信?
有人可以帮忙吗? 任何建议都很重要。
现在是另一个问题) 我应该为我的引擎使用什么类型的库,.a 或 .so,以及如何将我的游戏与引擎链接?
最佳答案
这个工具基本上会为您生成所有的 JNI C++ 和 Java 包装器,让您轻松地做一些疯狂的事情。此外,一旦完成 SWIG 配置文件的编写,您就可以为许多不同的语言构建它。 Java 到 C++ 并不是一个很好的组合。您可能会发现您需要将 C++ 接口(interface)更改为更像“java”,这样您就可以避免内存问题。
关于android - 如何链接游戏引擎和安卓游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228806/