2012-02-26 5 views
0

基本的に私は自分自身のポケモンゲームを構築していますが、新しい "地域"に入るたびに古いものをクリアするのではなく、タイルをリセットしてリフレッシュする必要があります既存のものに追加するだけで、多くの問題を引き起こします。 古いタイルをクリアすると、ゲームはきれいになり、きれいになります。ダブルアレイのクリア

私は私がしなければならなかったすべては、ボタン配列の新しい(クリーン)のインスタンスを作るために

buttonPanels = new JButton[row][col] 

だと思いましたか? ボード全体が単なるJButton配列です。

以下の2つの画像、前の画像と後の画像の2つを新しい領域に移動します。あなたはどのように新しい写真のすべてが既存の写真に追加されるのかを写真のどのように見ることができますか。これは多くの問題を引き起こします。

http://i421.photobucket.com/albums/pp296/rskom/before.png http://i421.photobucket.com/albums/pp296/rskom/after.png

ありがとうございました!! :) 初めてRPGタイプのものを試してみるので、あまりにもそれほど批判的ではありません。

+2

問題を説明する簡単なコードスニペットまでご質問ください。 –

+0

@Oli_Charlesworth、あなたが何を意味しているのかわからない...私は2Dボタン配列をクリアする必要があるので、次の領域を空にすると空白になり、私はこれを考えていた "boardPanels = new JButton [boardrow] [boardcol ]; "新しいインスタンスを作成することによって、JButton領域をリフレッシュさせるでしょう。 – Austin

答えて

1

あなたのコードをもっと見ることなく、あなたの問題に答えることは難しいですが、問題の内容を知っていると思います。 JButton参照の新しい配列を作成するコードを表示します。しかし、これは以前の配列で持っていたボタンを破壊したり削除したりすることはありません。ボタンがどこかに見えていたら(通常はボタンがある場合)、最初にそのボタンをコンテナから削除する必要があります。これはおそらく、すべてのボタンを交換したい場合に必要なシーケンスです。

アレイから参照されている各ボタンについて、表示されているコンテナからそのボタンを削除します。次に、配列を置き換えて新しいボタンで塗りつぶし、最後にボタンをコンテナに追加して、再び表示する必要があります。

しかし実際の質問は、新しいボタンで新しい配列を作成する必要があるかどうかです。あなたはただあなたの既存のものを再利用できませんか?

+0

さて、私はそれを忘れていました...しかし、今私はどのようにシステムをリフレッシュさせるのですか? 'public static JButton [] [] clear(JButton [] [] myArray){ System.out.println(" REFRESH ");これは空白です。System.out.println( "array:" + boardPanels [0] [0]);for(int i = 0; i <ボードロー; i ++){ for(int j = 0; j Austin

+0

@Austinあなたは、すべてのボタンを削除してからボタン用の新しい配列を作成することを示しますが、新しいボタンは決して作成または追加されません。あなたの問題はおそらくそこにあります。 –

関連する問題