1

私は約 1 か月間、かなり基本的な Java ゲームに取り組んできましたが、大きな問題に遭遇しました。モニターの解像度が1280 x 720を超えている限り、どのモニターでも問題なく動作します。これは、ゲームを実行するように設定したものです。友人のコンピューターで実行してみるまで、これが問題であることに気付きませんでした。友人の画面には収まりませんでした。ここでの本当の問題は、私が一種の 2D トップダウン シューティング ゲームを作成していて、各レベルの壁とパワーアップの座標がすべてハードコーディングされていることです。画面サイズに比例してすべてを作成することはできません。非常に難しいだけでなく、ゲームの難易度や、画面の解像度によって可能性さえも変化するからです。解決策の 1 つは、800 x 600 で実行し、すべてのレベルを小さくすることだと思いますが、そうではありません。

私が知りたいのは、モニターに合わせてプログラムをスケーリングする方法があるかどうかです。たとえば、友人の 1024x768 などの 4:3 モニターで実行した場合、プログラムが画面に比例して収まるようにする必要があります (そのため、モニターのワイドスクリーン ビデオのように上部と下部に黒いバーが表示されます)。 4:3 モニター) だけでなく、すべての壁とパワーアップを、新しくスケーリングされた画面に対してあるべき場所に配置したいと考えています。

プログラムでピクセルを「ストレッチ」または「縮小」して、すべてがウィンドウに適切に表示されるようにする方法はありますか? 文字通りでなくても。助けていただければ幸いです。

4

2 に答える 2

1

標準の Graphics/Graphics2D を使用すると仮定すると、ペイントでスケーリングできます。

private static final double SCALE = 0.75;
private static final double INV_SCALE = 1.0 / SCALE;

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;
    g2.scale(SCALE, SCALE);
    ...
    g2.scale(INV_SCALE, INV_SCALE);

}

もちろん、倍率 (ここでは SCALE) の設定は少し難しくなります。

マウス座標は、自分自身をスケーリングする必要があります。

于 2013-01-03T21:41:16.090 に答える
0

コードでロジック解決を使用し、出力中にスケーリングします。

于 2013-01-03T21:34:27.630 に答える