如何将游戏引擎和Android游戏链接?

3
我正在开发一款用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中调用该库中的方法。 但是如何让游戏与引擎通信,然后引擎再与Android上的OpenGLES2通信呢?
是否有人可以帮助我? 任何建议都很重要。
现在问题又变成了) 我应该使用什么类型的库,.a或者.so来制作我的引擎,以及如何将我的游戏与引擎链接起来?

如果你还没有看过的话,可以看一下这篇博客文章(以及Chris Pruett所做的几乎所有事情)。http://android-developers.blogspot.com/2011/01/gingerbread-ndk-awesomeness.html - jluzwick
1个回答

1

SWIG

这个工具可以为您生成基本上所有的JNI C++和Java包装器,并让您轻松地完成一些疯狂的事情。此外,一旦编写完SWIG配置文件,您可以将其构建为许多不同的语言。Java到C++并不是一个非常好的组合。您可能会发现需要更改C++接口以更符合“java”的风格,以避免内存问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接