我一直在研究Java图形编程,我觉得我理解它是如何工作的。
我不喜欢/尚未掌握的一件事是如何管理在面板上绘制大量图形(形状、图像等)。
我目前正在阅读的所有书籍/教程都已将您想要完成的所有绘图放入paintCompnents/paint功能中。前任
public void paint(Graphics g){
//do stuff here....
}
问题是我有太多我想画的东西,以至于将一堆代码放在一个函数中是丑陋的,难以阅读的,并且很难管理/编辑......
我了解OOP,但我是图形编程的新手。我应该如何管理我想在画布上绘制的所有"数据"(确切地说是 JPanel)。我目前正在 paint(..) 方法中调用函数。前任
public void paint(Graphics g){
drawCars(g, x,y,wid,len,etc,etc);
}
然后。。。
drawCars(Graphics g, int x, int y, int wid, etc etc){
g.drawSomething(x,y,wid,len,)
g.drawAnotherThing(x+90,y+60,etc, etc);
}
问题是在我的 JPanel 类中,我必须管理所有这些杂散函数。
而这仅用于绘制"一页"的东西。我无法想象必须切换视图或游戏屏幕,我可以在页面上制作一堆动画。
我只是在寻找如何在 java 中组织由 paint() 方法绘制的代码的方向,这样我就不会因为看我的旧工作而发疯。任何教程,书籍(特别是如果它们是免费的),或者阅读的好代码将非常非常感激。
到目前为止,我发现的所有内容都是关于教授"可以"使用图形/图形2D/java做什么,但我正在寻找专家建议的组织/样式技巧。
为你画的逻辑事物(如汽车)制作类。每个物体都会知道它需要知道的一切,以绘制它自己的位置、大小和颜色。如果让所有这些对象实现一个通用接口,则可以将它们全部放在一个列表中。当需要绘制它们时,您可以迭代列表并调用每个对象绘制方法。
除此之外,还很好地记录了绘图代码,以便对于每个绘图语句,可以清楚地了解它是实际绘图的部分。
吐出来,在g中调用一个将绘制某个部分的方法。如果你在画房子,而不是只是画Rect,
等等drawRoof(g);
drawDoor(g);
然后在这些中,你有像 drawRect 这样凌乱的东西......
这有帮助吗,我可能会误解您在寻找什么......