Bonjour à tous, dans cet article je vous présente la réalisation d’un cube3D réalisé a l’aide de Papervision3D moteur qui gère la 3D dans flash.
La création de ce cube a été conçu pour le siteWeb makeet ( site qui permet l’envoi de faire-part, de cartes de voeux multimédia et interactives ).
Dans le code source chaque face du cube a une couleur différente, mais sachez qu’il est possible d’insérer des images à la place
pour voir le rendu cliquez ici
pour voir l’utilisation du cube sur la siteWeb makeet voici le lien
A tres bientôt
Voici le code source :
package {
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import flash.display.Sprite;
import flash.events.Event;
/**
* @author Ateoz
*/
public class Cube3D extends Sprite
{
//propiétés
//environnement 3D
protected var _view : Viewport3D;
protected var _camera : Camera3D;
protected var _scene : Scene3D;
protected var _render : BasicRenderEngine;
//l'objet 3D est ici un cube
protected var _material : MaterialsList;
protected var _cube : Cube;
//size de l'univers Papervision3D
protected var _largeur : uint = 640;
protected var _hauteur : uint = 480;
public function Cube3D()
{
//creer l'environnement 3D
initPapervision3D();
initCube();
listeners();
}
protected function initPapervision3D():void
{
_view = new Viewport3D( _largeur, _hauteur, false, true);
_view.x = 0;
_view.y = 0;
_camera = new Camera3D();
_camera.z = -150;
_scene = new Scene3D();
_render = new BasicRenderEngine();
addChild(_view);
}
protected function initCube():void
{
//afficher une couleur sur chaque face du cube
//pour cela on utilise la classe materiallist qui va regrouper les couleurs des
//6 faces du Cube
_material = new MaterialsList(null);
_material.addMaterial(new ColorMaterial(0xFFFF00), "front");
_material.addMaterial(new ColorMaterial(0x259978), "back");
_material.addMaterial(new ColorMaterial(0xFF0000), "right");
_material.addMaterial(new ColorMaterial(0x0000FF), "left");
_material.addMaterial(new ColorMaterial(0xFFFFFF), "top");
_material.addMaterial(new ColorMaterial(0x815345), "bottom");
//creer le cube
_cube = new Cube(_material, 100, 100, 100,8, 8);
_cube.x = 0;
_cube.y = 0;
_scene.addChild(_cube);
}
protected function listeners():void
{
this.addEventListener(Event.ENTER_FRAME, onAnim);
}
protected function onAnim( e : Event ):void
{
//rendu final de la scene
_render.renderScene(_scene, _camera, _view);
var moveX : Number = (mouseY - _largeur/2 )/ _largeur / 2;
var moveY : Number = (mouseX - _hauteur/2 )/ _hauteur / 2;
_cube.rotationX += moveX * 3;
_cube.rotationY += moveY * 3;
}
}
}
