上の複数のモニタ用libGDX/LWJGLゲームフルスクリーン間違ったサイズは、私がlibGDX(LWJGLの上にライブラリー)ゲームプロジェクトに取り組んで、いくつかの異なるワークステーションからのIntelliJ IDEA IDEを使用しています:JavaとUbuntuの
- 2台のディスプレイ(1920x1080および1600x1200)、nVidia GT540Mを搭載したWindows 7 x64ラップトップ。
- Ubuntu 12.04 LTSは、1つのディスプレイ(1366x768)、Intel内蔵グラフィックスを搭載したノートパソコンに搭載されています。
- Ubuntuの二つのディスプレイ(1920×1080と1280×1024)と、デスクトップ上の12.04 LTS、nVidiaのGTS 450
私はUbuntuのボックス上でJava 6のためのOpenJDKを使用して、上のSun/OracleのJava 6のよWindowsのボックス(私はJava 6がAndroidの互換性のために使用するものと聞いた)。
フルスクリーンで実行されている:
- Windows 7のノートパソコン:正常に動作します。
- Ubuntuノートパソコン:正常に動作します。
- Ubuntuデスクトップ:背景画像が拡大表示され、一部のみが画面に収まります。 +
さらにこれを見ると、私は、Gdx.graphics.getHeight()とGdx.graphics.getWidthへの呼び出しは()私の場合3200x1080で、両方のディスプレイをカバーするのに必要な矩形のサイズを返すことがわかりゲームを全画面で実行すると、ディスプレイのうちの1つしか使用されないため、カメラは1920x1080に設定されますが、カメラの動きとタイルマップのパンは、3200x1080で動作し、使用できない(キャラクターはスクリーンから右に離れるので)。
awt.ToolkitのgetScreenSize()呼び出しで返されるサイズから実際に問題が発生していると推測していますが、実際に使用する画面のサイズを取得するために、より深く問い合わせる方法はわかりません私はフルスクリーンに行きます。
私DesktopStarterは、次のようにフルスクリーン画面サイズとセットを取得します。
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
cfg.width = screenDimension.width;
cfg.height = screenDimension.height;
cfg.fullscreen = true;
new LwjglApplication(new Game1(), cfg);
は、回避策「フルスクリーン」は、実際に起動することだけでディスプレイの高さ/幅を得るためにはありますか?
私が見ている問題は、game.jarファイルを実行してゲームを終了し、もう一度繰り返し実行すると、Gdx.graphics.getDisplayModesによって返されるモードのリストに表示される異なる表示モードになることです() - PT以下に指摘するが、これはLWJGLのDisplay.getAvailableDisplayModes()
を囲む薄いラッパーである。なぜこうなった? Ubuntuでの後続実行時に表示されるモードが異なるのはなぜですか?
編集:per p。の提案では、表示モードのリストを提供しているLWJGLのように思われるので、問題のLWJGL参照を入れてください。
ありがとうございます!
'Gdx.graphics.getDisplayModes()'はより一貫して有用な結果を返しますか?あなたがこれを問い合わせる前にlibgdxを初期化しなければならないので、チキンと卵のビットです。 –
@ P.T。ありがとう!これは直接サポートされていませんが、サポートされているすべての表示モードのリストを返します。おそらくJREのハードウェアとのインターフェースによって報告されます。私はそのヒントを使用し、最高解像度(最高1920x1200)を選択し、その解像度で最高のリフレッシュレートを持つものを選択するために、Game.Create()のループをセットアップしてすべてのモードを回転させました。これは、2つ(またはそれ以上)の非常に低解像度のモニターを使用しない限り(その幅が1920またはそれ以下になるように)、再生可能なデフォルトを選択します。それを答えとして加えて、それをマークします。 ;) – Shad
実際これをもう少し試してみると、私のUbuntuワークステーションで 'Gdx.graphics.getDisplayModes()'が盛んです。非常に頻繁に、それが報告する43モードのうち、1920x1080は全くリストされていません。しかし時には、それはいくつかの異なるリフレッシュレートで記載されていますか?挫折。 – Shad