2012-02-10 2 views
3

私はC++で書かれたゲームエンジンに取り組んでいます。 私のエンジンはOpenGLES2を使用しています。 今、私はAndroid用のポートを作りたいと思います。もちろん、jniを使用します。 また、私はこのゲームエンジンで書かれたゲームを持っています。Android用ゲームエンジンとゲームをリンクするにはどうすればよいですか?

私は、C++で書かれた自分のゲームからInit、Draw/Update、Terminateメソッドを呼び出す小さなJavaラッパーを作成しました。

同時に、私のゲームはエンジンからC++関数を呼び出します。

[Javaのアンドロイド] - JNI - > [++ゲームC] - 呼び出し - > [++エンジンC] - 呼び出し - > [OpenGLES2]

質問はそれをすべてをリンクする方法です。

libGame.soに自分のゲーム用のC++コードをビルドし、javaからこのライブラリのメソッドを呼び出すことができます。 しかし、Androidとopengles2でエンジンとゲームをやりとりしてエンジンと通信するにはどうすればいいですか?

誰でも手助けできますか? アドバイスは重要です。


質問は今別です) ライブラリのどのようなタイプの私が使用する必要があり、.Aまたは私のエンジンのための.so、そしてどのようにエンジンに私のゲームをリンクしますか?

+0

もしあなたがいなければ、このブログ記事を見てください(そして、Chris Pruettがそれに関してしたことはかなりです)。 http://android-developers.blogspot.com/2011/01/gingerbread-ndk-awesomeness.html – jluzwick

答えて

1

SWIG

このツールはあなたのために、基本的JNI C++とJavaラッパーのすべてを生成し、あなたは簡単にいくつかのクレイジーなことを行うようになります。また、SWIG設定ファイルを書き終えたら、たくさんの異なる言語用に構築することができます。 JavaとC++の組み合わせはあまり良い組み合わせではありません。あなたはおそらくメモリの問題を回避することができるように、より "java"のようにC + +のインターフェイスを変更する必要があることがわかります。