2

Java ブリック ブレーカー (DxBall など) ゲームを開発しようとしていBallて、独自の描画メソッドでオブジェクトを作成したいと考えています。

私がやろうとしていること:

public class Ball {
  private int x, y, diameter;
  public void  Ball(){
    x = 0;
    y = 0; 
    diameter = 20;
  }

  public void draw(Graphics g){
    g.setPaint(Color.red);
    g.fillOval(x, y, diameter, diameter);
  }
}

したがって、私のゲーム エンジンは拡張JFrameされ、そのpaintComponentメソッドはゲーム オブジェクトの draw メソッドを呼び出します。要するに、Java でオブジェクト指向ゲームを行うのは適切な方法ですか? 私のBallクラスは何を拡張する必要がありますか?

4

3 に答える 3

3

グラフィカル コンポーネントを作成Ballする場合は、次のように拡張できますJComponent

public class Ball extends JComponent {
    private int x;
    private int y
    private int diameter;

    public Ball() {
        x = 0; 
        y = 0; 
        diameter=20;
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setPaint(Color.red);
        g.fillOval(x, y, diameter, diameter);          
    }
}

カスタムメソッドrepaintの代わりにコンポーネントをペイントしたいときに呼び出すだけです。draw

注: コンストラクターには戻り値の型はありません。

于 2012-11-17T16:05:36.337 に答える
3

あなたのBallクラスは問題ないようです。何も拡張する必要はありません。ゲームオブジェクトのオブジェクトをGraphicsメソッドに渡す必要があります。paintComponentBall draw

于 2012-11-17T16:06:14.800 に答える
1

あなたのクラスは問題ありませんが、クラスを拡張することをお勧めします。このクラスは通常、次のような基本情報として呼び出されるSpriteか、Actionまたは含まれていますGameObject

image (or animation), position, collision rect and some basic functions like get and set it's position, speed and some collision detection functions if you wish.

いくつかのリソース。

彼らが助けてくれることを願っています。オブジェクトを描画するには、次のようにします。

g.drawImage(ball.image, ball.x, ball.y, null);
于 2012-11-17T17:07:36.297 に答える