1

我是 Java 编程新手。我正在学习开发一款类似于名为 breakout 的游戏。这是它的工作原理

你有一套砖可以用球和桨敲击

我在这里陷入了困境,

每当我错过球时,它会带我到我发送“游戏结束”消息的 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)不要破坏作为参数传递的图形

3) 代码应等于起始码;将球移到运动场内并重新开始。

于 2011-10-01T11:26:43.957 回答