2011-12-20 6 views
0

私はネイティブのアンドロイドOpenGL実装を持つプロジェクトを持っています。 MyViewはGLSurfaceViewを拡張し、MyRendererはGLSurfaceView.Rendererを実装します。私は実装に満足していません。なぜなら、それは急いで行われたものであり、不適切であるからです。私はそれをLibGDX実装に変更したいと思います。いくつかの質問、それはそれの価値があるのですか?私は既存のOpenGL実装にネイティブコードを使用していないので、C/C++コードにはあまり精通していません。 LibGDXに切り替えることでパフォーマンスの向上が見られます。次に、それがどれほど難しいか。私はちょうどLibGDXで始まり、私のデバイス上で実行するためのアプリを持っています。私はNDKかLibGDXに時間を投資する方が良いですか?OpenGL AndroidをLibGDX OpenGLに変更する

答えて

2

C/C++に精通していない人は、プロジェクトをNDKに切り替える手助けをしていない可能性があります。あなたはフレームワークの変更を行うためにあなたの進歩を遅くするつもりです、そして、新しい言語を追加することは遅れを複合するだけです。

libgdxへの移行は、時間の投資に価値があるかもしれません。ネイティブのアンドロイドからlibgdxに切り替えるときに私が見つけた主な利点は、あなたのデスクトップ上であなたのアプリをまっすぐに走らせることができるということでした。エミュレータはゲームを実行するには時間がかかりすぎますので、通常はすべてのテストが携帯電話に搭載されていなければなりません。これは遅く、さらに悪化します。 libgdxでは、すぐに実行され、apkを入手するために別のプロジェクトをエクスポートするだけで済みます。私はそれも画面サイズをテストする良い方法であることがわかりました。仮想デバイスをたくさん作成する代わりに、ウィンドウのサイズを変更するだけです。

libgdxを実行する主な欠点は、あなたがアンドロイドフレームワークに直接アクセスできないことです。私はアンドロイドプロジェクトにそれらを追加することで、(メニューなどのさまざまなアクティビティを使用して)この問題を回避しました。 libgdxプロジェクトは本質的にゲームの核心にすぎませんでした。

+0

スティーブさん、アプリ内購入や広告を追加すると、ネイティブのAndroidと同じくらい簡単です。 PaymentActivityを作成し、startActivityForResult(...)を呼び出してonActivityResultでコールバックを取得します。あなたが言うように、私はそれを回避する必要がありますか?アンドロイドは、すべてのテクスチャデータをonResume(現在はonSurfaceChangedで行っています)をリロードする必要があるので、私が見逃したもう一つの重要なことは、私はそれをしなければならないのでしょうか?もう一度ありがとうございます – AkasH

+0

私は広告を使ったことはありませんが、[this](http://code.google.com/p/libgdx/wiki/AdMobInLibgdx)と表示されています。支払いのためには、アンドロイドコードからすべての「アクティビティ」を実行する必要があります。おそらくメニューなどから取得しますが、libgdxアクティビティ/アプリケーションから直接取得する必要はありません。テクスチャの場合は、マネージドとアンマネージの両方のテクスチャがあると思います。私はマネージドのみで作業し、テクスチャはリロードされます。 [This](http://code.google.com/p/libgdx/wiki/TheArchitecture)は、libgdxで何を期待しているのか、本当に良い概観です。 –

+0

情報ありがとうございます。乾杯。 – AkasH