跳ね回るボール
ブロックを壊すボールを実装します。ボールは壁に当たったら跳ね返ります。実行するとわかりますがラケットに当てなくてもボールが跳ね返るようになっています。次回はボールとラケットの当たり判定処理を入れてボールがラケットに当たったとき跳ね返るようにします。
ボールクラスです。ボールの実装はボールを動かす(2004/9/19)とボールが跳ね返る処理(2004/9/20)で詳しく解説したので見てください。
public class Ball { // サイズ private static final int SIZE = 8; // 位置(ボールを囲む矩形の左上隅) private int x, y; // 速度 private int vx, vy; // 乱数生成器 private Random rand; public Ball() { rand = new Random(System.currentTimeMillis()); // 位置を初期化 x = rand.nextInt(MainPanel.WIDTH - SIZE); y = 0; // 速度を初期化(とりあえず固定) vx = 5; vy = 5; } /** * ボールを描画 * * @param g */ public void draw(Graphics g) { g.setColor(Color.YELLOW); g.fillOval(x, y, SIZE, SIZE); } /** * ボールの移動 * */ public void move() { x += vx; y += vy; // 左右の壁にぶつかった場合にバウンド if (x < 0 || x > MainPanel.WIDTH - SIZE) { vx = -vx; } // 上下の壁にぶつかった場合にバウンド if (y < 0 || y > MainPanel.HEIGHT - SIZE) { vy = -vy; } } }