0

libgdxライブラリによってビルドされたJavaアプリケーションに2つの画像を読み込もうとしています。背景画像をロードしましたが、画像の位置を(0,0)に設定しないと、他の画像を画面にロードできませんでした。例えば; 画像の位置を0,0に設定しましたが、問題ありません。ただし、画像の位置を20、0に設定すると、画像が見えなくなります。

batch.draw(Assets.coinRegion, position.x, position.y, 1, 1)

上記のコードで画像を描画しようとしています。

ありがとうございました。

編集:

obstacle = loadTexture("data/obstacle.png"); 
obstacleRegion = new TextureRegion(obstacle, 0, 0, 64, 64);
world.obstacle.position.x += 0.001; 
batch.draw(Assets.obstacleRegion,
world.obstacle.position.x, world.obstacle.position.y, 1, 1); 
4

1 に答える 1

2

TextureRegion クラスは、テクスチャ内の四角形を記述し、テクスチャの一部のみを描画する場合に役立ちます。

private TextureRegion region;
...
texture = new Texture(Gdx.files.internal("image.png"));
region = new TextureRegion(texture, 20, 20, 50, 50);
//if you have 2 images in image.png add new region and specify rectangular:
//region2 = new TextureRegion(texture, 70, 0, 100, 100);
...
batch.begin();
batch.draw(region, 10, 10);
batch.end();

ここで、20、20、50、50 はテクスチャの部分を表し、10、10 で描画されます。Texture とその他のパラメーターを SpriteBatch に渡すことで同じことが実現できますが、TextureRegion を使用すると、両方を記述する単一のオブジェクトを使用できるので便利です。

SpriteBatch には、テクスチャ領域を描画するための多くのメソッドがあります

ソース:ソース

2 つの画像が 1 つである場合は、いくつかの「領域」変数を使用します (region1 = new ... and region2 = new...)。

于 2013-02-05T13:30:19.687 に答える