Tetrominos k__ forked:1favorite:2lines:84license : MIT License modified : 2009-05-30 20:00:49 Embed Tweet package { import flash.display.*; import flash.events.*; import flash.geom.*; import org.papervision3d.cameras.*; import org.papervision3d.materials.shadematerials.*; import org.papervision3d.materials.special.*; import org.papervision3d.materials.*; import org.papervision3d.materials.utils.*; import org.papervision3d.objects.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.render.*; import org.papervision3d.scenes.*; import org.papervision3d.view.*; import org.papervision3d.lights.*; public class Main extends Sprite { private var scene:Scene3D; private var camera:Camera3D; private var viewport:Viewport3D; private var renderer:BasicRenderEngine; private var objects:Array = []; private var material: PhongMaterial ; private var light:PointLight3D; private var blockDef:Array = [ [[0,0],[1,0],[1,1],[0,1]], [[1,0],[2,0],[3,0],[4,0]], [[0,0],[0,1],[0,2],[1,1]], [[0,0],[1,0],[1,1],[2,1]], [[0,1],[1,1],[1,0],[2,0]], [[0,1],[1,1],[1,0],[2,0]], [[0,0],[1,0],[2,0],[0,1]], [[0,0],[1,0],[2,0],[2,1]] ] public function Main() { //bg graphics.beginFill(0x000000); graphics.drawRect(0,0,500,500); scene = new Scene3D(); //camera camera = new Camera3D(); camera.x = camera.y = 0; camera.z = -1000; camera.focus = 100; camera.zoom = 10; //vieport viewport = new Viewport3D(500,500); addChild(viewport); //renderer renderer = new BasicRenderEngine(); //light light = new PointLight3D(); light.x = 100; light.y = 100; light.z = -100; scene.addChild(light); // create materials material = new PhongMaterial (light, 0xffffff, 0x888888,4); //create objects var cnt:uint = 0; var mList:MaterialsList; var object:DisplayObject3D, cube:DisplayObject3D; for (var j:uint = 0; j <= 300; j += 100) { for (var i:uint = 0; i <= 300; i += 100) { cnt = (cnt + 1) % blockDef.length; mList= new MaterialsList(); mList.addMaterial(material ,"all"); object = new DisplayObject3D; for (var k:uint = 0; k < blockDef[cnt].length; k ++) { cube = new Cube(mList,20,20,20); cube.x = blockDef[cnt][k][0] * 20; cube.y = blockDef[cnt][k][1] * 20; object.addChild(cube); } object.x=i - 150; object.y=j - 150; objects.push(object); scene.addChild(object); } } stage.addEventListener(Event.ENTER_FRAME, drawPapervision3d); } private function drawPapervision3d(e:Event):void { for (var i:uint = 0; i < objects.length; i ++) { objects[i].rotationX+=1; objects[i].rotationY+=1; objects[i].rotationZ+=1; } renderer.renderScene(scene, camera, viewport); } } } Code Fullscreen Preview Fullscreen CYBERFOX clockmaker objects viewport light scene camera renderer material BasicRenderEngine Viewport3D rotationZ rotationX rotationY zoom renderScene focus drawRect addEventListener beginFill addChild push sort new page view favorite forked pv0 forked from: Tetrominos hacker_x5c5shs_ forked:0 favorite:0lines:84 (diff:1)