我是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用于他们的程序的结构
我一直在寻找谷歌,但找不到答案。
如果我的问题困惑,请告诉我。
答案 0 :(得分:2)
您可以将元素添加到集合中,然后迭代集合并在循环中绘制每个元素。这可以在几行代码中绘制100个对象。
此example会迭代Area
个实例&使用以下方式绘制它们:
for (Area obstacle : obstacles) {
if (doAreasCollide(obstacle, player)) {
g.setColor(Color.RED);
} else {
g.setColor(Color.GREEN);
}
g.fill(obstacle);
}
3绿色&收集中有一个红色障碍物,而球(小黄色圆圈)是分开绘制的。