【问题标题】:Breakout game ( When im out, i want the ball again to hit the remaining bricks)突破游戏(当我出局时,我希望球再次击中剩余的砖块)
【发布时间】:2011-10-01 20:25:03
【问题描述】:

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

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

我在这里陷入了困境,

每当我错过球时,它会带我进入 else 循环,我会在其中发送“游戏结束”消息。 相反,我希望球再次回来,而另一个剩下的砖块可以击中。

这里是sn-p 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();
   }

提前致谢:)

【问题讨论】:

  • @DanielA.White 这也是一个编程问题,所以这里是主题。

标签: java paint breakout


【解决方案1】:

1) 使用paintComponent()

2) 不要破坏作为参数传递的 Graphics

3) 代码应该等于起始码;将球移入比赛场地并重新​​开始。

【讨论】:

  • 但是我如何从以前的状态中获得这些砖块?与for循环有关...请帮助
  • 您还没有删除它们?他们为什么要消失?
  • 这是要求!假设我有 5 块砖要击中,我第一次射击并击中了一块砖,它消失了,还有其他 4 块砖,我第二次击球时错过了球。现在我想要球、桨和剩下的 4 块积木,这样我就可以继续玩了
  • isDestroyed() 包含一个布尔值 false。不删砖吗??
  • 代码中的一些地方; ingame 设置为假。你必须找到这个位置并重置球的位置。
猜你喜欢
  • 2014-09-07
  • 2013-09-28
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多