2012-02-10 120 views
3

我正在用C++编写游戏引擎。 我的引擎使用OpenGLES2。 现在我想为Android创建端口,当然通过使用jni。 另外我有一个游戏写在这个游戏引擎上。如何链接游戏引擎和Android游戏?

我写了一个小型java包装来调用Init,绘制/更新和终止我用C++编写的游戏的方法。

同时,我的游戏会从引擎调用C++函数。

【JAVA的Android] - JNI - > [C++游戏] - 叫 - > [C++引擎 - 调用 - > [OpenGLES2]

的问题是如何连接这一切。

我可以将我的游戏C++代码构建到libGame.so并从java调用此库中的方法。 但如何与引擎,然后与Android的opengles2引擎进行交流游戏?

任何人都可以帮忙吗? 任何建议都很重要。


现在的问题是另一个) 我应该使用什么类型的库,.A或.so我的引擎,以及如何将我的游戏引擎链接?

+0

如果你还没有(和Chris Pruett在这件事上做的几乎所有事情)一起看看这篇博客文章。 http://android-developers.blogspot.com/2011/01/gingerbread-ndk-awesomeness.html – jluzwick 2012-02-14 23:01:54

回答

1

SWIG

这个工具基本上都会生成所有的JNI C++和Java的你的包装,让您轻松做一些疯狂的事情。另外一旦完成了SWIG配置文件的编写,您可以为许多不同的语言构建它。 Java到C++不是一个很好的组合。您可能会发现,您需要将您的C++接口更改为“更像”java“,以便尽可能避免内存问题。