多个对象不渲染
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()
编辑图形对象,然后尝试用它绘制另一个项目。
我正在制作一个 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()
编辑图形对象,然后尝试用它绘制另一个项目。