サーチ…


ビューポート

複数の解像度とアスペクト比をサポートするため、LibgdxはいわゆるViewportsポートを使用しViewports
複数の解像度とアスペクト比を処理するために異なる戦略を使用するいくつかのタイプのViewportsあります。
Viewport使用するCameraボンネットの下に、それはだ管理viewportHeightviewportWidth 。必要に応じて、 Viewportコンストラクタ内のCameraを指定することもできます。そうでない場合は、デフォルトでOrthographicCameraが使用されます。

private Viewport viewport;
private Camera camera;

public void create() {
   camera = new PerspectiveCamera();
   viewport = new FitViewport(8f, 4.8f, camera);
}  

さらに、ビューポートのコンストラクタにworldWidthworldHeightを指定する必要があります。このスペースは、描画するオブジェクトの位置とサイズを指定するために使用する仮想座標系を表します。たとえば、SpriteBatchに適用できるビューポート変換は、使用している実際のタイプのビューポートに適合する方法で、論理座標を実際の画面座標に自動的に変換します。たとえば、正射投影( OrthographicCamera 、デフォルト)が使用されている場合:ワールドサイズが12.8 x 7.8メートルで、デバイスの画面サイズが2560×1560ピクセルの場合、世界は200ピクセル/メートルで動的に投影されます。

Viewportのサイズが変更されたViewport (たとえば、Smartphoneの画面の向きが変更されているViewport 、その変更についてViewportに通知する必要があります。 CameraviewportHeightviewportWidth自動的に更新します:

public void resize(int width, int height) {
    viewport.update(width, height);
}

Viewportまた、 OpenGL Viewportを管理し、必要に応じて描画可能領域を変更します。

Viewport 、画面座標をゲーム座標に変換することにも注意します。これは特にピッキングに必要です。

private Vector2 worldPos = new Vector2();
public boolean touchDown (int x, int y, int pointer, int button) {
    worldPos.set(x, y);
    viewport.unproject(worldPos);
    processPicking(worldPos);
}

内蔵ビューポート

それぞれが異なることをする組み込みのビューポートがいくつかあります。名前のリストとその説明は次のとおりです。

ビューポート名説明
StretchViewport 画面が引き伸ばされます。黒い棒はありませんが、縦横比はオフになっている可能性があります。
FitViewport アスペクト比に基づいてサイズを最大化します。黒い棒がありました。
FillViewport FitVieportと全く同じですが、常に画面全体を塗りつぶします。
ScreenViewport 常に画面全体を塗りつぶしますが、子のサイズは変更しません。
ExtendedViewport 世界を一方向に拡張することによって、黒い棒のない世界のアスペクト比を維持する
CustomViewport カスタムプログラムされたビューポート。黒いバーがあり、アスペクト比を維持する可能性があります。

カスタムビューポート

独自のカスタムビューポートを作成することができます。それは黒い棒を持っているかもしれません、そして、あなたがそれをどのようにプログラムするかによって、それは縦横比を保つかもしれません。カスタムビューポートは次のようになります。
public class Tutorial extends Viewportupdate(width, height)をオーバーライドupdate(width, height)必要がありますが、それだけです。

別の試みは、一般的なScalingViewportを拡張し、まだ提供されていない別のScalingを提供することです。 Scaling.none設定したとします。これは次のようになります。 画像例参照が必要な場合は、 ここに組み込みビューポートクラスがあります

StretchViewport

StretchViewportは、仮想画面サイズをサポートするViewport型です。
これにより、固定された(解像度に依存しない)幅と高さを定義することができます。
StretchViewportは、名前が示すように、仮想アスペクト比が実際のアスペクト比と一致しない場合、仮想画面を引き伸ばします。 OpenGLビューポートは変更されず、黒いバーが表示されません。

使用法:

private Viewport viewport;
private Camera camera;

public void create() {
    camera = new OrthographicCamera();
    viewport = new StretchViewport(80, 48, camera);
}

public void resize(int width, int height) {
    viewport.update(width, height);
}

FitViewport

FitViewportsは常にアスペクト比を維持するビューポートです。これは、スペースが残っている辺に黒いバーを作成することで行います。これは最も一般的に使用されるビューポートの1つです。

使用法:

private Viewport viewport;
private Camera camera;

public void create() {
    camera = new OrthographicCamera();
    viewport = new FitViewport(80, 48, camera);
}

public void resize(int width, int height) {
    viewport.update(width, height);
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow