Atualmente, estou programando um jogo wich inclui lotes de elementos gráficos. Atualmente os olhares código como este:
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(ImageLoader.gui_iconbar, xToRel(480), yToRel(810), xToRel(960), yToRel(270), null);
g.drawImage(ClientVariables.getSplashart(Main.selectedCharacter, 0), xToRel(495), yToRel(825), xToRel(135), yToRel(240), null);
//... (don't get confused with xToRel, it just makes changes to the drawing position if you move the camera)
}
O problema é: Há toneladas de thise g.draw (qualquer que seja); linhas. Eu quero dividi-los em várias classes, mas apenas fazendo 4 classes e copiar e colar gameFrame.add (GraphicclassXY); não funciona, logicamente. alguém sabe como resolver esse problema? (Não é um problema se a solução inclui fazer mudanças de JLabel à lona por exemplo)
Criar classes não-componentes lógicos (que não se estendem JLabel, JPanel, JFrame, JComponent ou outro componente Swing), dar-lhes um public void draw(Graphics g)
método, dar a classe que faz as instâncias de desenho de suas classes lógicas, talvez dentro de algum tipo de coleção, e percorrer a coleção e chamada draw
em suas instâncias dentro do método paintComponent.