2016-04-03 8 views
1

私は自分のゲームを作りました。それはGdx.graphics.getWidth()メソッドで画面幅の%に応じて調整され、すべての画面で完全に動作します。libgdx - >カメラとビューポート

私はビューポートを習得しようとしていますが、世界の調整がいつ行われるのか、いつ実際の画面のピクセルをとるのかなど、もっと難しい問題があるようです。

これらの2つの測定値を常に変化させる必要がありますか?それは私がちょうど古いfasion方法をそれを拡大するより多くの問題があるように思われる...

私が持っていたFitViewportを使用すれば私は全体のスクリーンを使用し、ブラックバーのように、ゲームはまったく違うでしょう。

これらのポートを使用する理由に明確な提案は、私はそれらを理解するように見えることができない原因...

+0

http://stackoverflow.com/help/how-to-askをご覧ください。ビューポートまたはカメラを直接使用する場合でも、ワールド座標とスクリーン座標の変換量は同じです。 Viewportでは、さまざまなアスペクト比を扱うのが簡単になります。あなたが指しているコードを見ることなく、それについてもっと多くのことを言うことはありません。 – Xoppa

+0

もし私がFitViewportを使うと、オブジェクトが空から落ちるゲームを作ると、オブジェクトはスクリーンの上にないか、画面の一番左から一番右に出ることができません。私のゲームではビューポートを使用していませんでした。なぜなら、それは醜いので、私は%でそれをやったので、ゲームが静止していると人々がビューポートを使う理由はわかりません。 –

+0

ゲームの大部分ExtendViewportは、UI以外のものに使用される唯一のビューポートです。 FitViewportは、黒い棒を犠牲にしてスケーリングについて心配することがない、怠惰な方法です。 – Tenfour04

答えて

0

事はあなたが特に任意の変換を行うことは何もを行う必要はありませんということです。

Viewportは、多くの種類の画面(他の多くの比率を意味します)でアプリのレンダリングを処理するツールの1つで、これ以上心配する必要はありません。

あなたがしなければならないことは、画面のサイズを「表示」し、ビューポートを更新して画面のサイズ変更を処理することだけです。その後、実際にどのように見えても、常に800 x 600pxのようにあなたのアプリを扱っています。

あなたのアプリケーションのレンダリング方法は、使用するビューポートの実装によって異なります。たとえば:

  • FitViewportは...
  • デバイスに画面に合わせ、デバイスに自分の画面に合わせますいくつかの黒いバー
  • FillViewportを追加し、一部にように
  • とをオーバーフロー遮断します

official Viewport libGDX tutorialをご覧ください。また、ビューポートを処理する方法については、this threadをご覧ください。

+0

ええと、ロジックのように、プロセッサの使用画面座標を入力しませんか?または、それらのビジュアルピクセル(800X600)をすべて使用することは可能です。それは意味をなさないでしょう...もう一つ、extendViewportが最も有用なもの、または唯一の便利なものですが、背景をすべてにする方法ExtendViewportは何とかそれを一方向に拡張し、すべてが奇妙なのでスプライトは画面に関連していますが、どのような例がありますか?申し訳ありませんが、実際には混乱しています。なぜなら、これらのものがなくてもゲームを作って、完全にスケーリングしたからです... –

+0

http://pastebin.com/rjtPprqD < - 現在のコードは800x600ですが、 800x600ではなく、デスクトップモードで画面を上に移動すると、スプライトは同じ場所にとどまりますが、それは上に移動する必要があります –

+0

別のlibgdx'esトピック(このようなトピックでいくつかの回答がありました)チュートリアルいくつかの問題をクリアするべき素晴らしい紹介を提供しています:)背景についてのあなたの質問に答える - 多くのステージを作成することができます多くのビューポートの例のためのFillViewportのバックグラウンドと2番目のステージExtendViewportのUIボタンなど...しかし、パフォーマンスの問題のために多くのステージ(> 10など) –

関連する問題