Comunidad de diseño web y desarrollo en internet online

Cubo con diversos materiales en papervision

Citar            
MensajeEscrito el 28 Ene 2008 09:12 pm
Hola que tal, estoy teniendo un problema a la hora de asignarle un objeto materialList a un cubo en papervision. El siguiente codigo lo tome de un tutorial que vi por ahi y por mas que muestra el ejemplo funcionando cuando yo lo compilo no me funciona:

Código :

//Importo las clases necesarias
import flash.display.Sprite;
import flash.events.Event;

import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.Cube;
import org.papervision3d.scenes.MovieScene3D;
import org.papervision3d.materials.*;

//Defino variables
var container: Sprite;
var scene: MovieScene3D;
var camera: Camera3D;
var cubo: Cube;
//Esta variables va a contener los nombres de los 6 materiales que voy a utilizar para cada cara del cubo
var listaMateriales:MaterialsList = new MaterialsList();

//FUNCIONES

//Función inicial
function Empezar(){
        CrearEscena();
        CrearCamara();
        CrearMatrizMateriales();
        CrearCubo();
}

//Crea la escena 3D
function CrearEscena(){
        //Creo un contenedor para la escena y lo coloco en el centro del escenario
        container = new Sprite;
        container.x = 200;
        container.y = 200;
        addChild( container );
        //Creo la escena 3D a partir del contenedor
        scene = new MovieScene3D( container );
}

//Creo la cámara que va a "mostrar" la escena
function CrearCamara(){
        //Creo la camara y la "alejo" de la escena para que muestre el cubo
        camera = new Camera3D();
        camera.z = -200;
        camera.zoom = 2;
        
}

//Relleno la matriz de materiales. Se puede utilizar rejilla, imágenes, clips, relleno de color, etc....
function CrearMatrizMateriales(){
        //Creo los materiales
        //Material del tipo rejilla de color rojo
        var material1:WireframeMaterial = new WireframeMaterial(0xFF0000);
        //Material del tipo MovieClip, con el clip llamado MaterialClip del escenario
        var material2:BitmapAssetMaterial = new BitmapAssetMaterial("cover");
        //Material del tipo MovieClip almacenado en biblioteca. Su Clase debe ser MaterialClipBiblioteca
        var material3:BitmapAssetMaterial = new BitmapAssetMaterial("cover");
        //Material del tipo BitMap almacenado en Biblioteca. La clase de vinculacion es árbol
        var material4:BitmapAssetMaterial = new BitmapAssetMaterial("cover");
        //Material del tipo ColorMaterial, de color azul. Simplemente especificamos de que color se tiene
        //que rellenar la cara
        var material5:ColorMaterial = new ColorMaterial(0x0000FF);
        //Material del tipo BitmapFileMaterial, con una imagen externa. Indicamos
        //La ruta de la imagen
        var material6:BitmapAssetMaterial = new BitmapAssetMaterial("cover");
        //Creo la lista de materiales para el cubo, indicando que material va en cada cara
        listaMateriales.addMaterial(material1,"top");
        listaMateriales.addMaterial(material2,"bottom");
        listaMateriales.addMaterial(material3,"front");
        listaMateriales.addMaterial(material4,"back");
        listaMateriales.addMaterial(material5,"left");
        listaMateriales.addMaterial(material6,"right");
}

//Crear el cubo
function CrearCubo(){
        //Creo el Cubo
        cubo = new Cube( listaMateriales, 128, 128, 128, 2, 2, 2);
        // rotate the cube a bit
        cubo.rotationX = 35;
        cubo.rotationY = 55;
        //Añado el cubo al escenario
        scene.addChild( cubo );
        //Renderizo la escena
        scene.renderCamera( camera );
        addEventListener(Event.ENTER_FRAME,RotarCubo);
}

//Función para rotar el cubo. Al acabar de rotar renderizo la escena para que
//se visualicen los cambios
function RotarCubo(e:Event){
        trace("Aqui");
        cubo.rotationX+=3;
        cubo.rotationY++;
        cubo.rotationZ++;
        
        scene.renderCamera(camera);
}

//Ejecutamos
Empezar();


Estoy utilizando la version 1.5 de papervision y el error que tira es el siguiente:

1067: Implicit coercion of a value of type org.papervision3d.materials:MaterialsList to an unrelated type org.papervision3d.core.proto:MaterialObject3D.

Quien pueda ayudarme se lo voy a agradecer porque es urgente!!!

Por topicus

18 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 Ene 2008 08:13 am
Tienes los materiales en en el escenario/biblioteca tal y como indica el ejemplo?

Por SdR

23 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 30 Ene 2008 04:13 am
Bueno, al fin, el problema era la version. Para los que recien empiezan con papervision les comento esta experiencia:

La version que se descarga de googlecode (el archivo zip) es una version vieja de papervision, es la 1.5 y ya van por la 2.0. Para descargar las nuevas versiones, antes tienen que descargar un programa svn(yo descargue el tortoiseSVN) y luego en el mismo colocar la siguiente url

[url] http://papervision3d.googlecode.com/svn/trunk/[/url]

El tema es que cuando uno ve los ejemplos que circulan la mayoria no aclara con cual version esta realizado el ejemplo. Lo mio fue a prueba y error. Espero que le sirva a alguien.

Salu2,

Topicus[/flash]

Por topicus

18 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.