2

我是java新手,我正在尝试创建一个“游戏”。

在我的游戏中,我的主类中有paintComponent 方法:

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    setBackground(new Color(120,120,255));
    BackgroundObject.drawGrass(g,385);
    BackgroundObject.drawRoad(g,420);
    BackgroundObject.drawSun(g,-20,-20);
    myCar.draw(g);
    debugger.draw(g);
}

问题是我要绘制的每一个对象,我都必须将它放在paintComponent方法下(就像我想绘制汽车时,我必须将myCar.draw()放在paintComponent下)

有没有办法做到这一点?

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    setBackground(new Color(120,120,255));
    visualComponents.draw(g);
    GUI.draw(g);
}

当调用 visualComponents.draw() 时,任何类都可以告诉 visualComponent 类绘制一个对象。

例如:我的汽车类告诉 visualComponent 在任何时候绘制车辆 visualComponent.draw(g); 叫做。

总结一下,我基本上是在询问大多数人如何在他们的程序中使用 paintComponent 的结构

我一直在搜索谷歌,但找不到答案。

如果我的问题让你感到困惑,请告诉我。

4

1 回答 1

2

您可以将元素添加到集合中,然后迭代集合并在循环中绘制每个元素。这可以在几行代码中绘制 100 多个对象。

示例迭代实例集合Area并使用以下方法绘制它们:

    for (Area obstacle : obstacles) {
        if (doAreasCollide(obstacle, player)) {
            g.setColor(Color.RED);
        } else {
            g.setColor(Color.GREEN);
        }
        g.fill(obstacle);
    }

3个绿色和1个红色障碍物在集合中,而球(黄色小圆圈)是单独绘制的。

于 2013-05-05T06:59:25.427 回答