问题描述
在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,getWidth(),getHeight(),null);
g.setColor(GREEN);
g.drawRect(x,w,top);
g.drawRect(x,1000-bot,bot);
g.fillRect(x,top);
g.fillRect(x,bot);
}
private class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
x -= speed;
myBuffer.setColor(BACKGROUND);
myBuffer.fillRect(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
}
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)