0

次のコードがあります。

    public void loop1(int times, SpriteObject[] obj){
        for(int i = 0; i < times; i++){
            obj[i] = new SpriteObject(BitmapFactory.decodeResource(gv.getResources(),  R.drawable.bar1), 500,720);
        }
     }

ただし、これをビューに描画すると、期待どおりにはなりません。obj[i].setX(10) と obj[5].setX(20) を使用するとします。さわやかで最後のオブジェクトだけを取っているので、2番目のものだけが表示されます。このようなドローアブルを再利用することは可能ですか?

4

1 に答える 1

0

ここで何を達成しようとしているのか完全には理解できません。リソースのロード方法が完全に間違っているようです。私が知る限り、あなたは 2 つの類似したビットマップを動かそうとしています。

まず、単純な描画アプリケーションまたはゲームの場合、view または surfaceview を使用するため、それを実装する必要があります。第 2 に、移動ビットマップを作成する方法は、最初に Bitmap 変数を作成してそれぞれのビットマップを保持し、次にそれぞれの Bitmap ごとに個別のクラスを作成することです。クラスには次のようなものがあります。

public float x = 0; public float y = 0;

したがって、これを念頭に置いて、ビットマップを描画するために必要なのは、このメソッドを使用する onDraw メソッドViewだけです。 canvas.drawBitmap(bitmapVariable, bitmap.x, bitmap.y, null);

ビットマップを移動したい場合は、それぞれのビットマップの X と Y を変更するだけです。別の方法または更新ループのいずれかで。

最終的に、ビットマップを間違って理解していると思います。ビットマップがガベージ コレクションされていない限り、一度作成すると、別の場所に再描画するために再作成する必要はありません。

于 2012-11-17T01:38:16.550 に答える