首页 > 解决方案 > Flappy Bird Pipes 如何在 Java 中随机化我用于学校的程序是 JGrasp

问题描述

在paint component.graphics g 中,我正在为我的飞扬小鸟游戏创建管道,但我不知道如何制作多个随机的管道。我已经将第一个随机化,但我不知道如何制作更多并将这些新的随机化。有谁知道我可以做到这一点的任何方法?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class FlappyPanel extends JPanel
{
   private static final int FRAME = 1000;
   private static final Color BACKGROUND = new Color(135, 206, 235);
   private static final Color GREEN = new Color(0, 255, 0);     
   private BufferedImage myImage;
   private Graphics myBuffer;
   private Polkadot pd;
   private Timer t; 
   int top = (int)(Math.random()*1000/2);
   int bot = (int)(Math.random()*1000/2);
   int x = 1000;
   int w = 20;
   int speed = 1;
   public FlappyPanel()
   {
      myImage = new BufferedImage(400, 400, 1);
      myBuffer = this.myImage.getGraphics();
      pd = new Polkadot(200, 200, 25, Color.black);
      pd.jump(400, 400);
      pd.setX(75);
      pd.setY(200);
      setFocusable(true);
      t = new Timer(10, new Listener());
      t.start(); 
      addKeyListener(new Key());
      setFocusable(true);
      
    }

   public void paintComponent(Graphics g)
   {
       g.drawImage(myImage, 0, 0, getWidth(), getHeight(), null);
       g.setColor(GREEN);
       g.drawRect(x, 0, w, top);
       g.drawRect(x, 1000-bot, w, bot);
       g.fillRect(x, 0, w, top);
       g.fillRect(x, 1000-bot, w, bot);
       
       
   }
   

   private class Listener implements ActionListener
   {
      public void actionPerformed(ActionEvent e)
      {
          x -= speed;  
          myBuffer.setColor(BACKGROUND);
          myBuffer.fillRect(0, 0, FRAME, FRAME);
          if(pd.getY()+1 <= 400)
          {
            pd.setY(pd.getY()+1);
          }
          pd.draw(myBuffer);
          repaint(); 
      }
   } 
   
   private class Key extends KeyAdapter
   {
      public void keyPressed(KeyEvent e)
      {
         
         if(e.getKeyCode() == KeyEvent.VK_UP)//bumper2 goes up 30 pixels when UP arrow key is pressed
         {
            if(pd.getY()-1 >= 0){
            pd.setY(pd.getY()-50);//stops pd from getting out of frame
            }  
         } 
      }
   }  
}

标签: javajgraspflappy-bird-clone

解决方案


推荐阅读