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

[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
m "Extender" não existe em Português.
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 3:
Inicializamos a ClasseMeuGameCanvas do mesmo jeito que fazemos com o GameCanvas normal, estendendo o GameCanvas, implementando o Runnable e colocando os objetos e métodos necessários.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
Linha 30:
}
}
</syntaxhighlight>
</source>
 
==Iniciando um gráfico 3D no GameCanvas==
Linha 36:
Vimos que a parte de inicialização do gráfico é igual a parte 2D, agora vamos criar o gráfico 3D em si, para isso vamos criar um objeto do tipo Graphics3D.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
Linha 64:
}
}
</syntaxhighlight>
</source>
 
Agora nessa parte vamos fazer um pouco diferente do que em relação ao Canvas normal, para iniciar o gráfico 3D dentro do GameCanvas devemos obrigatoriamente criar um '''try-catch-finally''' dentro do método '''run()''', nesse caso agora como a cada loop vamos sempre chamar o método '''flushGraphics()''' vamos coloca-lo dentro do '''finally'''.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
Linha 96:
}
}
</syntaxhighlight>
</source>
 
Agora podemos chamar os métodos padrões do '''Graphics3D''', primeiramente dentro do '''try''' vamos chamar o gráfico3D para inicializar o gráfico através do método '''bindTarget()'''
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
Linha 129:
}
}
</syntaxhighlight>
</source>
 
Agora vamos chamar o método '''releaseTarget()''' para soltar o gráfico 3D e deixar o programa correr normalmente, mas atente que faremos isso sempre dentro do '''finally''', caso o programa não consiga inicializar o gráfico 3D.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
Linha 163:
}
}
</syntaxhighlight>
</source>
 
==Exibindo um objeto em 3D no GameCanvas==
Linha 171:
Agora vamos importar primeiramente o pacote '''java.io''' para o projeto.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
import javax.microedition.game.*;
</syntaxhighlight>
</source>
 
Agora vamos criar a variável do tipo '''Object3D[]'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 212:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do método '''run()''', mas antes do loop vamos criar um '''try-catch'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 253:
}
}
</syntaxhighlight>
</source>
 
Agora vamos criar a variável do tipo '''Object3D[]'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 295:
}
}
</syntaxhighlight>
</source>
 
Como sabemos, não se pode manipular objetos diretamente pelo '''Object3D[]''', temos que criar outro objeto do tipo '''World'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 338:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do '''try-catch''' vamos converter o nosso objeto do tipo '''Object3D[]''' para o tipo '''World'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 382:
}
}
</syntaxhighlight>
</source>
 
Agora vamos colocar o nosso World para ser renderizado no nosso gráfico 3D, vamos colocar o método '''render()''' dentro do '''run()''' logo após o '''bindTarget()'''.
 
<sourcesyntaxhighlight lang="java">
import javax.io.*;
import javax.microedition.lcdui.*;
Linha 427:
}
}
</syntaxhighlight>
</source>
 
{{AutoCat}}