2011年9月2日金曜日

Java入門⑦

とりあえずボールが画面で上で動く所まで来ました。



あとはラケットとブロックを実装するだけです。
ラケットクラスに関してですが、部品として既に作成してあるので、あとはそれをゲーム版につなげるだけです。機能としては上記のクラス図に書いてある機能があるので上手く活用してください。


JavaGame3-q


またラケットの実装にあたってBallの仕様を少し変更しています。
今までBallクラスを使ってボールを作成する場合は、
private Ball ball; 		// ボール
    ball = new Ball();		//ボールの作成
    ball.setBall(5,5,8,3,3);//ボールの初期化
のように、宣言→作成→setメソッドで初期化としていましたが、Ballクラスを
public class Ball {
    // サイズ
    public static final int SIZE = 8;

    // 位置(ボールを囲む矩形の左上隅)
    private int x, y;
    // 速度
    private int vx, vy;

  //コンストラクタ new Ball()したときに呼び出される。
    public Ball() {
        // 位置を初期化
        x = 5;
        y = 5;

        // 速度を初期化(とりあえず固定)
        vx = 5;
        vy = 5;
    }
……
}
このようにクラス名と同じメソッドを宣言するとnewで作成したときに、このメソッドが呼び出され、ここに初期化処理を書くことができます。コンストラクタは引数を取ることも出来るので
public class Ball {
    // サイズ
    public static final int SIZE = 8;

    // 位置(ボールを囲む矩形の左上隅)
    private int x, y;
    // 速度
    private int vx, vy;

    public Ball(int xx,int yy,int vvx, int vvy) {
        // 位置を初期化
        x = xx;
        y = yy;

        // 速度を初期化(とりあえず固定)
        vx = vvx;
        vy = vvy;
    }
……
}
のように書き、
ball = new Ball(5,5,3,3);
のように生成することもできます。



マウスの座標の取得は以下のようにできます
	//マウスの座標取得
    public void mouseMoved(MouseEvent e) {
        int x = e.getX(); // マウスのX座標
    }


あとはラケットクラスのメソッドを見て、このゲームにラケットを実装してみてください。
どこを変更すればいいかはコメントに書いてあるので、Ballクラスの使われ方とよく見てRacketクラスのメソッドの使い方を考えてみてください。


問題⑧:ラケットクラスを利用して、ゲーム上でボールをラケットで打ち返せるようにしなさい。

0 件のコメント:

コメントを投稿