1

私はしばらくの間AndEngineを使用していて、ほとんどのことをうまく機能させることができましたが、最新のバグで問題が発生しています。簡単に言うと、いくつかの画像を1つのBitmapTextureAtlasにまとめたいと思うようになりました。

これらの画像は、特定の画像が常に表示されるとは限らないため、最初からすべてを組み合わせることができません。また、各画像は、ユーザー入力に基づいて独自の後処理を実行します。ただし、この入力がすべて行われると、これらの画像を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を調べて、これを機能させるために何をする必要があるかを理解しようとすると、アマチュア開発者としては少し圧倒されるので、自分より少し経験豊富な誰かがどこに行くべきかについてのヒントを教えてくれることを望んでいました。これを管理します。

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

4

1 に答える 1

1

テクスチャに何度も書き込むことによってそれを行うことはできません(すでに学習したように)。解決策には少し手間がかかりますが、完全に可能です。

まず、Android OSを使用して、画像のグループを合成できます。これに答えるStackOverflowの質問がすでにあります。この質問では、ユーザーがビットマップの配列をマージするコードを提供します。

android:ビットマップの配列を1つのビットマップにマージする方法は?

次に、AndengineでTextureSourceを作成して、リソースやアセットではなくビットマップからリージョンを作成する必要があります。

DrawableのAndEngineテクスチャ

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

(ステップ3:利益!)

于 2011-12-15T00:30:46.743 に答える