1

Javaプログラミングは初めてです。ブレイクアウトと呼ばれるものに似たゲームを開発することを学んでいます。仕組みは次のとおりです

ボールとパドルを使用して打つレンガのセットがあります

私はここで状況に巻き込まれました、

ボールを逃すと、「ゲームオーバー」メッセージを送信するelseループに移動します。代わりに、ボールを再び戻し、残りのレンガをヒットさせたいと思います。

スニペットのJavaコードは次のとおりです。

public void paint(Graphics g) {
       super.paint(g);

       if (ingame) {
           g.drawImage(ball.getImage(), ball.getX(), ball.getY(),
                       ball.getWidth(), ball.getHeight(), this);
           g.drawImage(paddle.getImage(), paddle.getX(), paddle.getY(),
                       paddle.getWidth(), paddle.getHeight(), this);

           for (int i = 0; i < 30; i++) {
               if (!bricks[i].isDestroyed())
                   g.drawImage(bricks[i].getImage(), bricks[i].getX(),
                               bricks[i].getY(), bricks[i].getWidth(),
                               bricks[i].getHeight(), this);
           }
       } else {

           Font font = new Font("Verdana", Font.BOLD, 18);
           FontMetrics metr = this.getFontMetrics(font);

           g.setColor(Color.BLACK);
           g.setFont(font);
           g.drawString(message,
                        (Commons.WIDTH - metr.stringWidth(message)) / 2,
                        Commons.WIDTH / 2);
       }


       Toolkit.getDefaultToolkit().sync();
       g.dispose();
   }

前もって感謝します :)

4

1 に答える 1

1

1) paintComponent() を使用する

2) 引数として渡された Graphics を破棄しないでください

3) コードは開始コードと等しくなければなりません。ボールをプレイフィールド内に移動して、最初からやり直してください。

于 2011-10-01T11:26:43.957 に答える