2012-01-06 8 views
4

おはようございます! 私はC#XNA 4.0からJavaのJava Android開発者に変換しようとしています。まず、マイクロソフトがモバイルプラットフォームのゲーム開発について本当に素晴らしい仕事をしたと言わなければならない。世界中の約20人がWin Mob 7. *の電話機を実際に所有しているのは残念です。
XNAでの開発は本当に分かりやすく、すべてがあなたのために行われます。私もONEを描くcan't しかし、私は人々にだけでなく、ビルの友人や誰でもそれらのいくつかのWMの携帯電話を持っているに自分のアプリを取得したい...Androidの描画方法が遅いです

をそしてここでは ... troblesを来ました!速度を満たすビットマップ。実際に描画 -

は、だから私はそれがwon't悪いことも考えマリオZechnerによって

(www.apress.com/9781430230427)Androidのゲームの開始: は、私はこの本を通り抜けました。しかし、... 私は、図のさまざまなスタイルを試してみました...(スクリーンクラスをRenderViewに提示します)、次にこのチュートリアルのメソッドhttp://www.edu4java.com/androidgame/androidgame3.html、次に最も簡単な http://mikeyhogarth.wordpress.com/2010/10/09/how-to-develop-pong-for-android/のプリミティブを持つポンです。

私は理解できません。なぜプリミティブを描画していても、3つのプリミティブオブジェクトを移動させることが遅いのです。

私は1つ移動しようとしました!ビットマップ(edu4javaチュートリアルから)とそれは常にを動かすことができませんでした。 スレッドを一時停止して10(または20(または30))のFPSでrenederingするためにsleep()メソッドを適用したとしても、それは恐ろしいものでした。 私は実際のデバイス(Wildfire S)と同様、エミュレータ(Microsoftよりもずっと悪い)で試しました

大丈夫ですが、Wildfire Sはこれまでで最も速いAndroidではありませんでしたが、ビットマップはそのハードコアではありません。

そして私は、私は、描画のための新しいスレッドを持っている必要があります知っている、私は私を助けるだろうinterwebsの周りに何かを見つけるcouldn't

など、キャンバスに描くために、SurfaceViewを経由してそれをしなければなりません。

がより良い何をすべきかを知っているenybodyがあります... は、私はそれが今まで最も単純答えであることを願って、私はインターネットの歴史の中でgratestのnoobのように見えるだろうが、私はそれを負担しますか?

(私は、単純な2Dゲーム(まだ)に興味以来、私はOpenGLのEPを使用していないです)

でもお読みいただきありがとうございました。

エルハン

+1

どこが間違っているかを知るためには、より詳細な情報を提供する必要があります。 Android携帯電話の中でも最も遅いものでも、30fpsを超えるビットマップを表示することができます。ビットマップのビット深度とディスプレイのビット深度を一致させましたか?あなたはそれを完全に不透明にするようにシステムに求めていますか?ビットマップデータをビットマップオブジェクトに保持していて、繰り返しリソースから読み込まないのですか?詳細を記入し、「私たちはあなたの質問に答えることができます。 – BitBank

+0

何が間違っているかを知るためにコードスニペットを投稿してください。 –

答えて

3

これは、パフォーマンスに役立つかもしれない:あなたが高いAPIレベルで構築している場合は、あなたがあなたのマニフェスト内のハードウェアアクセラレーションをオンにすることができるはずです。使い方が簡単で、物事をよりスムーズにする必要があります。トリックは、必要なときに有効にして、何も集中していないときに無効にすることです。 http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html

+0

もっとコントロールするには、ユーザーが(画面に触れるような)何かとやりとりするときにオンにしてから、指を離したときに無効にします。これは、マニフェストで常に実行するのではなく、コード内でオンとオフを切り替えることで実現できます。 – SpicyWeenie

関連する問題