2011-04-05 13 views
0

私はちょっとしたゲームを作って、Javaでもう少し経験を積んでいます。すべての視覚的なものを含むパネルは、2次元の配列をタイルベースの風景のためのグリッドとして持っており、私は草、木、水のようなものを持っています。適切な絵を右のタイルに適切にペイントするには、if文などがたくさんあります。それは素晴らしく見えなかったので、私は水のタイルのためのすべてのif文を(独自のメソッドに北海岸か海洋かを判断する)移動しましたが、試してみると、私のキャラクターを動かす。私はそれがほとんど変わらないので、私が移動するたびに背景を塗り直すのはばかげていることに気付きました。だから、私はちょうど背景をペイントし、それを残して、まだ彼はパネルの周りを動くように文字のスプライトを、妥当なスピードで塗り直すことができますか?ゲームでプレイヤーと風景をペイントしますか?

+0

また、文字があった場所と現在の位置に背景を再描画するだけで済みます。 – MeBigFatGuy

答えて

0

同様の状況がありました。私は単に株価チャートを横切って登録ラインを移動し、その株価チャートを新しい株価チャートに再描画せずに移動したいと思っていました。

答えは、バッファリングされた画像を使用することです。静的な部分を画像にペイントし、オフスクリーンの画像として保存し、移動するオブジェクトを画像にペイントするたびにスクリーンに表示します。実装はかなり簡単で、うまく機能します。

これが役に立ちます。

ジョンR.ドナー

0

JPanelを背景画像とともに使用します。パネルをGridLayoutに設定し、各グリッドにJLabelを追加します。次に、ラベルのsetIcon(...)メソッドを使用して、プレーヤをグリッドからグリッドに移動できます。したがって、基本コードは次のようになります。

oldLabel.setIcon(null); newLabel.setIcon(...);

スイングは、変更された2つのグリッドの四角形だけを再塗りつぶして見ます。

関連する問題