多个对象不渲染

Multiple objects Not rendering

我正在制作一个 space 游戏,将对象渲染到 JPanel 上。 这些对象的 render 方法在我的 Space class.

中被调用

我有 2 个对象,alienShip 和 myShip,它们各自具有 classes。每个 class 都有一个渲染方法。我无法让两艘船同时渲染到我的 JPanel 上,要么是其中之一,要么是另一艘。我只看到先调用.render(g2)方法的对象

SPACE CLASS:

spaceImage=new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
foregroundImage=new BufferedImage(WIDTH, HEIGHT,   BufferedImage.TYPE_INT_RGB);

//create the space Image background and instantiate ships (myShip, alienShip)

//Below render() method is  called in my Game class using a standard game loop with 
update method and rendor method. 

public void render(Graphics2D g) {
    Graphics2D g2=(Graphics2D) foregroundImage.getGraphics();
    g2.drawImage(spaceImage, 0, 0, null);
    myShip.render(g2);            <---alienShip does not appear, only myShip.
    alienShip.render(g2);         <---If I swap these 2 commands, then alienShip appears, 
                                      and myShip does not

    g.drawImage(foregroundImage, x, x, null);
}   

ALIENSHIP AND MYSHIP CLASS:

public void render(Graphics2D g) {
    g.drawImage(shipImage, x, y, null);
    g.dispose();
}

我尝试创建一个 Drawable 接口,并循环遍历调用 DrawableObject.render(g2) 的所有可绘制对象,但没有修复它。此外,我的子弹会与 myShip 同时发射。

myShip 和 alienShip 也扩展了一个名为 Ship 的抽象 class。希望这是有道理的。

您在绘制一个项目后 .dispose() 编辑图形对象,然后尝试用它绘制另一个项目。