2011-12-15 9 views
1

私はAndEngineと少しずつ協力してきましたが、ほとんどのものを動作させることができましたが、私は最新のバグにいくつかの問題があります。ストーリーを短くするために、いくつかの画像を1つのBitmapTextureAtlasにまとめたいと思っています。AndEngine - 複数のテクスチャが1つのテクスチャに重なっています

これらの画像をすべて組み合わせることはできません。特定の画像が常に表示されることはなく、それぞれの画像はユーザーの入力に基づいて個別の後処理も行います。しかし、この入力がすべて完了した後は、これらの画像を1つのテクスチャに合成し、すべてを表示するスプライトを1つだけ持つように、パフォーマンスを少し向上させるだけでなく、パフォーマンスを少し向上させます(半ダース程度)。私は次のような何かをすることによってこれをやろうとしてきた

this.mBitmapTextureAtlas = new BitmapTextureAtlas(512, 1024, TextureOptions.NEAREST_PREMULTIPLYALPHA); 

    this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mBitmapTextureAtlas, this, "layer1.png",0 ,0); 
    this.mFaceTextureRegion2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "layer2.png",0 ,0); 

これはほとんど動作しますが、問題は(少なくとも私はそれを参照してください方法から)それはすべてのピクセルを上書きしていることで、最後に追加されたレイヤーだけが表示されます。 AndEngineを通して私のやり方を飛躍しようとすると、この仕事をするために何が必要なのかが素人開発者としては圧倒されているので、これを管理する。

もちろん私の問題については他の提案もありますが、これは私が思いついた解決策ですが、他の方法もあると確信しています!

答えて

1

テクスチャに繰り返し書き込むことでこれを行うことはできません。既に学んだとおりです。 解決策は少ししかやることはありませんが、完全に可能です。

まず、アンドロイドOSを使用して複数の画像を合成することができます。これには、ユーザーがビットマップの配列をマージするコードを提供する、これは、スタックオーバーフローの質問があります。

android: how to merge an array of bitmap together in one bitmap?

次に、あなたはビットマップの代わりに、リソースや資産から地域を作成するためにAndengineでTextureSourceを行う必要があります。

AndEngine Texture from Drawable

最後に、あなたが、あなたのスプライトにそのTextureRegionを渡すことができます。

(手順3:利益!)

+0

これはAndEngine以外のコマンドを使用しようとは考えていませんでしたが、どのように動作するのかわかりました。私は謎のNullPointerExceptionを扱っていますが、これは現時点では問題ありませんが、このような方法でこれらのビットマップを統合する前に、どれだけの制御があるのだろうかと思いました。私がこれまで意図していたやり方でやっていたとき、私はすべての処理をどのように行うかを知っていましたが、これらのビットマップを使ってピクセル単位の計算を何らかの形で行う必要がありますか? – Cyanide

+0

上記のリンクをクリックすると、アンドロイド:1つのビットマップにビットマップの配列をマージする方法は?必要なコードを確認してください。それは難しくない。最も難しいのは、Canvasオブジェクトを正しく使用する方法を理解することです。 –

+0

私はそれに取り組んできました。私の要求を満たすためには、ちょっと変わったことが必要ですが、私は今、これを実現する正しい道のりです!ありがとうございました。 – Cyanide

関連する問題