Bom, dando continuidade ao post anterior, neste mostrarei como criar e mostrar um cubo rodando na cena em papervision. Utilizando a classe base mostrada no artigo anterior. Ela por si apenas “prepara o terreno”, agora precisamos inserir os objetos e então reproduzir a cena.

Neste para ficar mais simples de entender, escreverei na própria classe. Mais pra frente mostrarei como utilizar classe estendida ( caso mais indicado ).
As diferenças neste caso são: os imports, as variáveis, os objetos e a animação.
Antes de mais nada, criamos um .FLA na mesma pasta que nosso arquivo pv3d_base.as. E então no temos que fazer o import, no primeiro frame escreva:
var asBase:pv3d_base = new pv3d_base() addChild(asBase) asBase.init(600, 400)
Na nossa classe vamos inserir algumas coisas, inicialmente importamos o que será utilizado:
import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Cube;
Depois declaramos nossa nova variável:
var cubo:Cube
Dentro da função init3d, criamos e inserimos nosso novo objeto na scena, neste caso utilizarei o WireframeMaterial. e criarei um DisplayObject3D para comportar nosso objeto 3d.
var wf:WireframeMaterial = new WireframeMaterial(0x000000, 1, 0) // material 'grade', com cor preta var materialsList:MaterialsList = new MaterialsList(); materialsList.addMaterial( wf, "front" ) materialsList.addMaterial( wf, "back" ) materialsList.addMaterial( wf, "left" ) materialsList.addMaterial( wf, "right" ) materialsList.addMaterial( wf, "top" ) materialsList.addMaterial( wf, "bottom" ) // cria uma lista de materia, para o cubo cubo = new Cube(materialsList, 200, 200, 200, 3, 3, 3, 0, 0) var holder:DisplayObject3D = new DisplayObject3D() holder.pitch(-30) holder.addChild(cubo) default_scene.addChild(holder) // adiciona na cena
E por fim, adicionamos uma animação a esse cubo:
cubo.rotationY += 5 // faz girar 5 pixels por frame no eixo Y cubo.rotationX += 2 // faz girar 2 pixels por frame no eixo X
É isso, compilando este fla, deve aparecer um cubo em wireframe rodando em eixo X e Y, isto é apenas um exemplo mostrando que nossa classe pv3d_base funciona.
Segue aqui um zip com os fontes.
Nos proximos posts estarei mostrando outros objetos e matérias do papervision, o que é possível fazer com ele. e enfim, como o papervision é importante na realidade aumentada.