Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

簡単なボールゲームについて

初めての質問させていただきます。
現在私は
フレーム内でマウスクリックされた時に、その座標にボールを描画。

ボールが生成される度にスピードと方向はランダムで移動、フレームの淵にいったら反射する。

ただしマウスポインタのX座標に応じて、横棒も描画しているのですが、そこにも反射判定があります。

という簡単なゲームを作っているのです。
JFrameやJPanelなど主にswingを使っているのですが、今現在

class Bar extends JPanel {

/* 横棒を描画したJPanelのクラス
*
* 〜処理〜
*/
}

class Ball extends JPanel {

/* ボールを描画したJPanelのクラス
*
* 〜処理〜
*/
}

class Game extends JFrame {
  Ball ball = null;

//〜(省略)〜
public void mouseClicked(MouseEvent e ) {
//マウスクリックイベント
        ball = new Ball();
        this.add(ball);
        ball.setVisible(true);
        ball.setOpaque(false);
    }
}

というようにマウスクリックがあるたびに
Ballクラスのインスタンスを作ってフレーム内に配置してるのですが、どうにもボールの数が増えるにつれて処理が目に見えて重く(棒の動きが遅くなったり)してきます。

また、Barクラスもマウスポインタが移動するたびに同じように処理しているのですが
これらが原因なのでしょうか?
原因だとしたら
私の知識では思い浮かばなかったのですが、ほかの方法があるのでしょうか?ぜひご回答お願いします。

javaに詳しくないため意味のわからない言い回しをしていたらそちらの方も合わせてご指摘していただければ幸いです。

0

回答

4892

閲覧

0件の回答

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。