g2D.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0,0,width,height);
g2D.fill(rect);
Mas pelo que percebi tudo que vem depois começa a ser pintado com AlphaComposite , assim tudo é pintado trasparente. D=
Alguém sabe outra solução , ou um jeito de arrumar isso!?
Faça uma cópia do contexto gráfico, faça a limpeza, e descarte a cópia:
Graphics2D temp = (Graphics2D) g2D.create();
temp.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0,0,width,height);
temp.fill(rect);
temp.dispose();
Outra possibilidade é armazenar o Composite do seu Graphics2D antes de altera-lo para o AlphaComposite, assim vc pode restaura-lo depois de desenhar o retângulo.
geovanni
Funcionou Perfeitinho!
Valeu!
Tava ficando loco com isso, já tinha procurado em tudo quanto era lado e não achava. D=
Estou montando um jogo , e desenhando todas as camadas em BufferedImage antes de pintar na tela.
Inclusive estou usando seu GameLoop Vini. =D
Muito Obrigado!
ViniGodoy
Pra que desenhar em BufferedImage antes de pintar na tela?
Eu não usaria Java para fazer um jogo hoje em dia. A tecnologia é muito ruim para games, não há investimento ou interesse da Oracle.
Não há boas classes para muitas coisas… música, joysticks, etc…
Sem falar que é super pouco portável.
Se fosse usar uma linguagem similar para fazer o jogo, usaria XNA.
geovanni
Hm…
Esse jogo é um trabalho de curso mesmo,tem que ser em java.
Mas como pretendo continuar esse jogo , estou pensando em usar XNA.
Dei uma mexida e tal,e achei bom de trabalhar.
Que dica tu deixaria para a pintura por camadas!?
ViniGodoy
Ah, entendi o que vc quer fazer. Pode usar as imagens mesmo.