【发布时间】:2014-04-30 19:02:06
【问题描述】:
我正在编写一个类似于小行星的游戏,但我不明白如何在后台生成小行星。
现在我在主类中生成了一个小行星,但我想为小行星创建一个类,我这样做了吗?
主类
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
if(flag_img)
{
background(g2d);
logo(g2d);
menu(g2d);
spaceship(g2d);
crediti(g2d);
}
}
后台功能(现在)
private void background(Graphics2D g2d)
{
asteroidi_g_x+=r.nextInt(4);
asteroidi_g_y+=r.nextInt(1);
g2d.drawImage(asteroidi_g[0], asteroidi_g_x,asteroidi_g_y,this);
}
后台功能(我想要的)
private void background(Graphics2D g2d)
{
asteroid asteroid = new asteroid[10];
}
和类小行星
public class asteroid extends JPanel implements ActionListener
{
private BufferedImage images_asteroid;
private boolean flag_img;
private JPanel jp;
private int x,y;
public asteroide_grande(JPanel jp)
{
flag_img = true;
x = (jp.getWidth()/2);
y = (jp.getHeight()/2);
this.jp = jp;
try {
images_asterod = ImageIO.read(this.getClass().getResource("images/asteroid/a1.png"));
} catch(IOException e){flag = false;}
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(flag_img)
{
g.drawImage(images_asteroid, 100, 100,this);
}
}
@Override
public void actionPerformed(ActionEvent e)
{
x=x-1;
y=y+1;
repaint();
}
类中的方法paintcomponent不起作用
【问题讨论】:
-
您只想移动图像中的那一个小行星?就这样?
-
我想生成一个小行星数组 (10),当我实例化一个小行星时,类构造函数会生成一个随机坐标并且小行星在 jpanel 中移动
-
请参阅下面的完整示例。
-
我没有使用数组,而是使用了
List,当我在计时器中循环遍历它时,如果小行星不在屏幕上,我将其从列表中删除。我还每秒添加一个新的小行星作为随机 x 位置
标签: java swing animation graphics 2d-games