21xrx.com
2024-11-08 21:11:30 Friday
登录
文章检索 我的文章 写文章
Java小游戏:飞翔的小鸟
2023-06-14 16:22:59 深夜i     --     --
Java编程 小游戏 飞翔的小鸟

飞翔的小鸟是当前最受欢迎的小游戏之一。它是一款简单却令人上瘾的游戏,玩家需要控制小鸟在屏幕上飞行,避过障碍物来获取分数。今天,我们将使用Java编程语言来创建自己的飞翔小鸟游戏!

Java是一种广泛使用的编程语言,功能强大且易于学习。我们可以使用Java Swing框架来创建简单的GUI界面,并使用Java线程来控制游戏的逻辑。下面是一个示例代码,展示了如何创建小鸟和障碍物、如何让小鸟飞起来、如何检测碰撞等内容。


public class FlappyBird extends JFrame implements ActionListener, Runnable {

  private Timer timer;

  private Bird bird;

  private ArrayList obstacles;

  private Thread thread;

  public FlappyBird() {

    setTitle("Flappy Bird");

    setSize(400, 600);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setResizable(false);

    bird = new Bird();

    obstacles = new ArrayList ();

    timer = new Timer(20, this);

    timer.start();

    addKeyListener(new KeyAdapter() {

      public void keyPressed(KeyEvent e) {

        if (e.getKeyCode() == KeyEvent.VK_SPACE) {

          bird.jump();

        }

      }

    });

    setVisible(true);

  }

  public void actionPerformed(ActionEvent e) {

    bird.update();

    for (Obstacle o : obstacles) {

      o.update();

      if (o.collidesWith(bird)) {

        gameOver();

        return;

      }

    }

    if (obstacles.isEmpty() || obstacles.get(obstacles.size() - 1).getX() < getWidth() - 200) {

      obstacles.add(new Obstacle(getWidth()));

    }

    for (int i = 0; i < obstacles.size(); i++) {

      if (obstacles.get(i).getX() < -50) {

        obstacles.remove(i);

        i--;

        continue;

      }

      if (obstacles.get(i).getX() < bird.getX()) {

        bird.addScore();

      }

    }

    repaint();

  }

  public void run() {

    while (true) {

      repaint();

      try {

        Thread.sleep(50);

      } catch (InterruptedException e) {

        e.printStackTrace();

      }

    }

  }

  private void gameOver() {

    timer.stop();

    thread = null;

    JOptionPane.showMessageDialog(this, "Game over!");

    System.exit(0);

  }

  public void paint(Graphics g) {

    super.paint(g);

    bird.paint(g);

    for (Obstacle o : obstacles) {

      o.paint(g);

    }

    g.drawString("Score: " + bird.getScore(), 20, 40);

  }

  public static void main(String[] args) {

    new FlappyBird().run();

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复