All posts tagged code source

Cube 3D

cube

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;
		}
	}
}