J2ME/Lições/M3G/No Canvas: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
Trocando categorização manual por AutoCat (o indexador da categoria estava incorreto) [ usando AWB ]
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 3:
Primeiramente dentro da nossa classe de Canvas vamos incluir o pacote M3G que tem todas as classes e métodos para se trabalhar com gráficos 3D.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
</syntaxhighlight>
</source>
 
Vamos agora criar normalmente nossa classe de Canvas.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 17:
public class ClasseMeuCanvas extends Canvas {
}
</syntaxhighlight>
</source>
 
Agora colocaremos o método '''paint()''' dentro da nossa classe de Canvas.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 30:
}
}
</syntaxhighlight>
</source>
 
E dentro do método '''paint()''' colocaremos o método '''repaint()'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 44:
}
}
</syntaxhighlight>
</source>
 
==Iniciando o gráfico 3D no Canvas==
Linha 50:
Até agora fizemos todo o preparativo para receber um gráfico canvas 2D, vamos agora iniciar um objeto do tipo '''Graphics3D''' com o método '''getInstance()''' dentro da nossa classe de Canvas.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 62:
}
}
</syntaxhighlight>
</source>
 
Agora iniciaremos o nosso gráfico 3D dentro do método '''paint()''', para isso vamos usar o método '''bindTarget()''' da classe '''Graphics3D''', e vamos usar como parâmetro o objeto da classe '''Graphics'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 79:
}
}
</syntaxhighlight>
</source>
 
Agora vamos terminar o processo de renderização do gráfico com o método '''releaseTarget()''' da classe '''Graphics3D''', esse método deverá estar sempre APÓS a chamada do método '''bindTarget()'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import javax.microedition.lcdui.*;
Linha 97:
}
}
</syntaxhighlight>
</source>
 
==Exibindo um objeto em 3D no Canvas==
Linha 105:
Agora primeiramente vamos incluir o pacote '''java.io''' que contém o tratamento de exceção.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
import javax.microedition.lcdui.*;
import java.microedition.m3g.*;
</syntaxhighlight>
</source>
 
Agora vamos criar uma variável do tipo '''Object3D[]'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 130:
}
}
</syntaxhighlight>
</source>
 
Agora vamos criar o construtor da classe '''ClasseMeuCanvas''' jogando a exceção IOException que é necessário para inciarmos o nosso objeto.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 152:
}
}
</syntaxhighlight>
</source>
 
Agora vamos inicializar o nosso objeto '''meuObjeto3D''' dentro do construtor, usando a classe '''Loader''' com o método '''load()''' que irá receber como parâmetro o endereço da localização do arquivo 3D que vamos carregar.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 175:
}
}
</syntaxhighlight>
</source>
 
Agora poderíamos estar prontos para mostrar o objeto 3D na tela, mas calma, não é possível exibir objetos do tipo '''Object3D''' na tela, por isso devemos converter o nosso objeto '''meuObjeto3D''' para um tipo aceito para a renderização, nesse caso o tipo será da classe '''World''' que irá renderizar tudo dentro do nosso arquivo .m3g de uma vez, e que futuramente também será usado para modificar os atributos do arquivo .m3g. Por isso vamos primeiramente criar a nossa variável do tipo '''World'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 199:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do construtor após a inicialização do objeto '''meuObjeto3D''' vamos converter o tipo '''Object3D[]''' para o tipo '''World'''.
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 224:
}
}
</syntaxhighlight>
</source>
 
Agora sim, podemos exibir o objeto que criamos na tela, para isso dentro do método '''paint()''', no espaço entre os métodos '''bindTarget()''' e '''releaseTarget()''' ficará todas as ações do módulo 3D. Para isso vamos usar nosso objeto da classe '''Graphics3D()''' e entrar o método '''render()''' que irá receber como parâmetro o nosso objeto do tipo '''World''' (que convertemos previamente).
 
<sourcesyntaxhighlight lang="java">
//arquivo ClasseMeuCanvas.java
import java.io.*;
Linha 250:
}
}
</syntaxhighlight>
</source>
 
{{AutoCat}}