2012-02-13 50 views
6

私はJavaのゲーム開発に関する一連のチュートリアルを、YouTubeのtheewbostonによって行っています。私はフルスクリーンのウィンドウを作ることができますが、解像度は800x600にリサイズすることを拒否しています。私はvc、GraphicsEnvironment.getDefaultScreenDeviceオブジェクト、dm、DisplayModeをテストしましたが、問題はないようです。私はSnow Leopardを運営しています。何か案は?Javaの画面解像度の変更

if(dm != null && vc.isDisplayChangeSupported()){ 
     try{ 
      vc.setDisplayMode(dm); 
      System.out.println("Display mode set"); 
     }catch(Exception ex){System.out.println("Despite the vc saying it is display change supported and the DM is not null, something went wrong");} 

    } 
} 
+1

このコードを実行すると例外が発生しますか?もしそうなら、 'ex.getMessage()'や 'ex.printStackTrace()'でエラーメッセージを出力してみてください。 –

+0

同様のコードがLeopardで動作します。質問を編集して、あなたが説明している問題を示す[sscce](http://sscce.org/)を含めると役に立ちます。 – trashgod

+0

@Hunter McMillen:いいえ、エラーメッセージは表示されません。ごめんなさい。 –

答えて

1

このコードをCore.java(またはGameClient.java)クラスに追加します。この問題は、必要なDM [] argsをScreenManager.javaクラスに渡していないことが原因です。

private static final DisplayMode modes[] = { //common monitor DMs 
    new DisplayMode(1366,768,32, DisplayMode.REFRESH_RATE_UNKNOWN), //1366x768px w/32-bit depth 
    new DisplayMode(1366,768,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(1366,768,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth  
    new DisplayMode(800,600,32, DisplayMode.REFRESH_RATE_UNKNOWN), //800x600px w/32-bit depth 
    new DisplayMode(800,600,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth 
    new DisplayMode(640,480,32, DisplayMode.REFRESH_RATE_UNKNOWN), //640x480px w/32-bit depth 
    new DisplayMode(640,480,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(640,480,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth 
}; 

私は、エラーがあなたのpublic void setFullScreen(DisplayMode dm)メソッドであると仮定しています。その場合には、この方法のための完全な構文は次のとおりです

​​

がこの投稿後に軽度のネクロ・ポストに気づきました。 Aaahh ...