玉が動かない
Posted: 2010年7月16日(金) 09:26
http://sasuke.main.jp/javaburokku.html
上記のサイトを参考に、2次元マップを作りブロック崩しを作成したのですが、ブロックを崩す玉が動きません。おそらくスレッドの部分に問題があってアニメーションが出ないのだと思いますが、どこがおかしいかわかりません。どなたかご協力お願いします。
ソースは長いので次の書き込みに続きます。
上記のサイトを参考に、2次元マップを作りブロック崩しを作成したのですが、ブロックを崩す玉が動きません。おそらくスレッドの部分に問題があってアニメーションが出ないのだと思いますが、どこがおかしいかわかりません。どなたかご協力お願いします。
ソースは長いので次の書き込みに続きます。
import java.applet.*; import java.awt.*; import java.awt.event.*; public class TileBasedGame extends Applet implements Runnable{ Thread th; //マップの作成 char map[/url][/url]; int MX = 15, MY = 20; String map_str[/url] = {"VVV ",//V:ブロック " VVV ", " ", " VVV ", " ", " ", " ", " ", " ", " T ",//T:玉 " M ",//M:玉を弾くラケット " ", " ", " ", " ", " ", " ", " ", " ", " "}; int x = 5;//バーの座標 int y = 11; int c_r = 0;//残りブロック数のカウント int b_x = 5;//ボールの座標 int b_y = 10; int b_xu = 1;//ボールの動き int b_yu = -1; int gam_f = 0;//ゲーム状況フラグ boolean key_m;//右キーが押されたときtrue boolean key_h;//左キーが押されたときtrue //ダブルバッファ関連 Dimension d; int w, h;//画面サイズ Image buff; // ダブルバッファリング用のバッファ Graphics buff_g; // ダブルバッファリング用のグラフィックス //画像用 Image img1; Image img2; Image img3; Image img4; int img3_x, img3_y; int img4_x, img4_y; public void init() { // 画像の読み込み img1 = getImage(getDocumentBase(),"hai.gif"); img2 = getImage(getDocumentBase(),"buro.gif"); img3 = getImage(getDocumentBase(),"tama.gif"); img4 = getImage(getDocumentBase(),"bar.gif"); th = new Thread(this);//スレッドインスタンス化 addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); int dir = -1; switch ( key ) { case 37: dir = 2; break;// left case 39: dir = 0; break;// right } if ( dir >= 0 ) img4Move(dir); repaint(); } } ); //マップの周囲を見えない壁で囲む map = new char[MY+2][MX+2]; for (int x = 0; x <= MX+1; x++) { map[0][x] = 'B'; map[MY+1][x] = 'B'; } for (int y = 0; y <= MY+1; y++) {//マップデータの読み込み map[y][0] = 'B'; map[y][MX+1] = 'B'; } for (int y = 1; y <= MY; y++) { for (int x = 1; x <= MX; x++) { map[y][x] = map_str[y-1].charAt(x-1); if ( map[y][x] == 'T' ) { img3Set(x, y); } if ( map[y][x] == 'M' ) { img4Set(x, y); } } } }