1

私は、コンピューターと Android 用のクロスプラットフォーム OpenGL ゲームを開発しています。

コンピューター プラットフォームの場合、LWJGL を使用します。

import static org.lwjgl.opengl.GL20.*;

Android プラットフォームの場合、次を使用します。

import static android.opengl.GLES20.*;

インターフェイスGLを作成してこれらの関数をラップしたくありません。また、同じクラスを異なるインポートで2回記述したくありません。Javaは起動時にネイティブにコンパイルされるため、それが可能であることはわかっています。

4

1 に答える 1

0

あなたの問題には2つの解決策があります:

  • 1つ目は、ラッピングです(これは望ましくありません)。そして、実行時に適切なクラスまたはインスタンスを注入します。

  • 2 つ目は、コンパイル時にマクロの前処理またはスクリプトを使用して、ターゲット プラットフォームに応じて使用するインポートを指定することです。コンパイルがより複雑になる可能性がありorg.lwjgl.opengl.GL20.*、開発段階で明示的に使用する必要がある可能性があります。
    したがって、最も簡単な方法は、ターゲット プラットフォームが Android の場合に置き換えるスクリプトを作成することです。org.lwjgl.opengl.GL20.*android.opengl.GLES20.*

于 2012-07-09T08:38:24.790 に答える