2012-03-31 1 views
3

ちょっと、私はダンジョンクローラーを作ろうとしていて、私はマップの生成に固執しています。私はランダムな部屋が生成されるようにしたいが、その前に私は実際に画面上に地図を描かなければならない。地図を一番上にしておき、グリッドにしておき、後で床の画像を追加します。私の考え方は、JFrameを作成し、paintComponentとforループを使ってRectangle2Dを描画し、四角形のグリッドを作成することです。これは正しい方法ですか?また、keyListenerを使用して文字を正方形から正方形に移動させるにはどうすればよいでしょうか?Javaゲームのための地図グリッドを描く

EDIT:ダンジョンクローラーは、1人のキャラクターをコントロールし、グリッドの周りを動かすトップダウンゲームです。あなたはモンスターを殺し、武器やアイテムを落としたり、レベルを上げたりします。今は画面上にマップを印刷する最良の方法を考えていきたいと思います。私は文字が正方形から正方形に移動し、矢印キーを押すだけのグリッドから始めています。それから私はランダムマップ生成に移ります!

+1

これはSwingアプリケーションの場合、KeyListenerではなく、[Key Bindings](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)を使用します。あなたはあなたの実際の問題についてもっと詳しく説明できますか?たとえば、「ダンジョンクローラー」が何であるかわかりません。私は保護された人生を送ってきたと思います。 –

答えて

2

抽象度を最初に作成することをお勧めします。各セル(空、障害物、敵、プレイヤー、アイテムなど)に関する情報を含むアレイから開始します。その

int[][] a={ 
    {0,0,0,0,0}, 
    {0,1,0,0,0}, //"1" - obstacle 
    {0,0,1,0,0}, 
    {2,0,1,0,0}, //for example "2" is player 
    {0,0,1,0,0} 
} 

よう

何かが今ちょうどそのマップに使用して(実際に:)良く見えている、または画像)あなたの四角形を描画します。通常、各セルは同じサイズでなければならないので、いくつかのステップで長方形を描きます。

+0

優れたアドバイス。 1 + –

+0

2次元配列のキーボード上のシンボルを使用してマップを描画した後、シンボルを画像のタイルに置き換えることはできますか? – user1198199

+0

@ user1198199、正確に「置き換える」ではありません。この配列(私の例では "a"という名前)を描画する必要はありません。この配列に合わせてタイル(または長方形)を描画する必要があります。 –

1

マップサイズに合わせたサイズのBufferedImagesを作成し、そのGraphicsオブジェクトを取得し、このオブジェクトを使用して地図を描画してから、それを破棄したいと思うでしょう。その後、JLabelが保持するImageIcon、またはJPanelのpaintComponent(...)メソッドで簡単に表示できます。

関連する問題