私はJavaとSlick2DAPIを使用してタイルベースの戦略ゲームを開発しています。
これまでのところ順調ですが、オプションメニューが停止しました。ユーザーがゲームプレイ中に解像度を変更できるようにする計画があります(結局のところ、これはかなり一般的です)。
私はすでにフルスクリーンに変更してウィンドウに戻すことができます、これは非常に簡単でした...
//"fullScreenOption" is a checkbox-like button.
if (fullScreenOption.isMouseOver(mouseX, mouseY)) {
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
fullScreenOption.state = !fullScreenOption.state;
container.setFullscreen(fullScreenOption.state);
}
}
しかし、コンテナクラス(私ではなくSlickによって実装されています)は、私の以前の信念に反して、表示モード/解像度変更機能を持っていないようです!そして、それはほとんど状況です...
私はそれが可能であることを知っています、しかし私は責任があるクラスが何であるかを知りません(それが存在する場合)!
ゲームの初期化の最初に使用されるAppGameContainerクラスは、これまでに見つけた表示モードを変更するための関数を備えた唯一の場所ですが、これは最初にのみ使用され、Slickのチュートリアルの時点ではローカルとして実装されます。
//This is my implementation of it...
public static void main(String[] args) throws SlickException {
AppGameContainer app = new AppGameContainer(new Main());
// app.setTargetFrameRate(60);
app.setVSync(true);
app.setDisplayMode(800, 600, false);
app.start();
}
オプション画面のメソッド内で使用するために、Mainクラスで静的グローバルとして定義できますが、update()
おそらく(非常に)悪い方法です...