3

私はlibgdxを使用してゲームに取り組んでいますが、さまざまな画面サイズにどのように実装するのでしょうか。さまざまなサイズと解像度の画像を配置する方法を理解しましたが、スプライトがさまざまな画面サイズをサポートするようにするにはどうすればよいですか?320x480の私の背景はうまくいきますが、480 x 800の非常に小さな場所になります。これを実現するには、すべての画面で機能しますか?

4

4 に答える 4

5

やりたいことに応じてさまざまな選択肢がありますが、

a. 次のように、各画面に収まるように縮小された HQ スプライトのセットを使用できます。

resize() で

width = arg0;
height = arg1;

次に、 render() で

batch.draw(textureRegion, -width/2, -height/2, width, height);

画面全体にスプライトを描画します (0,0 を中心とする正投影カメラを想定)

b. ビューポートの寸法に基づいてセットのスプライトをロードする、異なる解像度に異なるスプライトのセットを使用できます。

于 2012-01-13T03:46:58.980 に答える
3

Scene2d を使用できます。そこで、アプリケーションでウィンドウのサイズが変更されたことをシーンに通知できます

@Override
public void resize(int width, int height) {
    stage.setViewport(width, height, true);
...
}
于 2013-01-15T18:32:21.747 に答える
0

画面を 10x10 グリッドなどの仮想単位に分割します。実際の画面サイズから仮想ユニットを計算します。

VIRTUAL_UNIT_WIDTH = Gdx.graphics.getWidth()/10;
VIRTUAL_UNIT_HEIGHT = Gdx.graphics.getHeight()/10;

これらの仮想ユニットを介してスプライト サイズを設定し、spriteBatch.draw(); を呼び出すときに仮想ユニットを使用します。

このように、さまざまな画面解像度でゲームの同じ縦横比を維持できます。

これがあなたにアイデアを与えることを願っています。

于 2014-07-18T21:36:18.670 に答える