Duvida com Graphics

2 respostas
R

Boa tarde.
estou estudando tecnologia j2me para pode cria jogos , e estou tentando elabora umas classes que simule a api awt para eu produzir os jogos (estou muito habituado a usa a awt que num consiguo entender nada sobre o GameCanvas).

cheguei até esta parte

//Classe Canvas para j2me
protected void paint(Graphics g) {

// Implementa o código visual inferior do canvas(caso exista)
	g.setColor(0,0,255);
	g.drawRect(0,0,getWidth(),getHeight());
	
	// Chama os paint de todos os subcomponent 
	g.setClip(subComponent.getX,subComponent.getY,   subComponent.getWidth,subComponent.getHeight); /*<- isso ira cria o retangulo visual onde o subcomponente ira c desenhar*/
	g.translate(10, 10);/*<- converta a base das coordenadas para coordenada nos args(como c o 10 vira-se 0)*/
        component.paint(g);
	
	// Implementa o código visual superior do canvas(caso exista)
	g.translate(-g.getTranslateX(),-g.getTranslateY());
	g.setClip(0,0,getWidth(),getHeight());
	//...

}

//Ja no meu component

public void paint(Graphics g) {

g.setColor(0,255,0);

g.drawRect(0 , 0, subComponent.getWidth,subComponent.getHeight);

}

bom o q acontece eh uma simples bobeirinha que quando eu uso o setClip e passo o tamanho da area que eu quero reservar , quando eu compilo e olho meu componente fica q faltando 1 pixel da area reservada
(Neste caso ele desenha um quadrado sem os lado superior esquedo)

minha pergunta eh , existe como resover isso , c eu to usando essas ferramenta de forma errada ou eu vo ter q cria um script pra reserva a area com 1 pixel a mais ou isso e devido a tecnologia j2me (apsear de eu tb ter testado na awt e ter dado o mesmo resultado).

2 Respostas

ViniGodoy

Oi. Comece usando a tag code para deixar esse seu código formatado.

Senão fica muito mais difícil alguém se predispor a ler. Se você ainda não sabe fazer isso, leia isso:
http://www.guj.com.br/posts/list/50115.java

R

Ops desculpe pela ma formatação

//Classe Canvas para j2me
protected void paint(Graphics g) {

   // Implementa o código visual inferior do canvas(caso exista)
   g.setColor(0,0,255);
   g.drawRect(0,0,getWidth(),getHeight());

   // Chama os paint de todos os subcomponent
   g.setClip(subComponent.getX,subComponent.getY, subComponent.getWidth,subComponent.getHeight);// isso ira cria o retangulo visual onde o subcomponente ira c desenhar
   g.translate(10, 10);// converta a base das coordenadas para coordenada nos args(como c o 10 vira-se 0)
   component.paint(g);

   // Implementa o código visual superior do canvas(caso exista)
   g.translate(-g.getTranslateX(),-g.getTranslateY());
   g.setClip(0,0,getWidth(),getHeight());
   //...
}

//Ja no meu component
public void paint(Graphics g) {
   g.setColor(0,255,0);
   g.drawRect(0 , 0, subComponent.getWidth,subComponent.getHeight);
}
Criado 21 de abril de 2008
Ultima resposta 21 de abr. de 2008
Respostas 2
Participantes 2