我是 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 的结构
我一直在谷歌四处寻找,但找不到答案。
如果我的问题让您感到困惑,请告诉我。
最佳答案
您可以将元素添加到集合中,然后迭代集合并在循环中绘制每个元素。这可以在几行代码中绘制数百个对象。
这example迭代 Area
实例的集合并使用以下方法绘制它们:
for (Area obstacle : obstacles) {
if (doAreasCollide(obstacle, player)) {
g.setColor(Color.RED);
} else {
g.setColor(Color.GREEN);
}
g.fill(obstacle);
}
集合中有 3 个绿色和 1 个红色障碍物,而球(黄色小圆圈)是单独绘制的。
关于java - 如何在不调用多个 "draw()"方法的情况下使用 paintComponent()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382141/