flash on 2012-5-15

by mutantleg
import flash.media.Camera;
http://alternativaplatform.com/en/docs/7.7.0/index.html
♥0 | Line 143 | Modified 2012-10-23 16:11:54 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/3dT0E
 */

package {
    import flash.display.BlendMode;
    import flash.display.BitmapData;
    import flash.events.KeyboardEvent;
    import flash.events.Event;
    //import flash.media.Camera;
    
    //http://alternativaplatform.com/en/docs/7.7.0/index.html
    
    import alternativ7.engine3d.containers.ConflictContainer;
    import alternativ7.engine3d.containers.BSPContainer;
    import alternativ7.engine3d.core.Object3DContainer;
    import alternativ7.engine3d.core.Camera3D;
    import alternativ7.engine3d.core.EllipsoidCollider;
    import alternativ7.engine3d.objects.Mesh;
    import alternativ7.engine3d.primitives.Plane;
    import alternativ7.engine3d.primitives.Box;
    import alternativ7.engine3d.primitives.Sphere;
    import alternativ7.engine3d.primitives.GeoSphere;
    import alternativ7.engine3d.core.View;
     import alternativ7.engine3d.materials.Material;
    import alternativ7.engine3d.materials.FillMaterial;
    import alternativ7.engine3d.materials.TextureMaterial;
    import alternativ7.engine3d.materials.NormalMapMaterial;
    import alternativ7.engine3d.materials.FlatShadingMaterial;
    import alternativ7.engine3d.materials.VertexLightMaterial;
    import alternativ7.engine3d.materials.AverageLightMaterial;
    import alternativ7.engine3d.materials.SphericalEnvironmentMaterial;
    import alternativ7.types.Texture;
    import alternativ7.engine3d.lights.AmbientLight;
    import alternativ7.engine3d.lights.DirectionalLight;
    import alternativ7.engine3d.lights.OmniLight;
    import alternativ7.engine3d.lights.SpotLight;
    import flash.display.Sprite;
    
    public class FlashTest extends Sprite {
        
        public var cam:Camera3D;
        public var cont:BSPContainer = new BSPContainer();
 
 public var mwidth:int = 4;
 public var mheight:int = 4;
 public var myMap:Array = 
  [1,1,1,1,
  1,-1,0,0,
  1,-1,0,0,
  0,1,0,1];
        
        public function FlashTest() {
            // write as3 code here..
               cam = new Camera3D();
                cam.view = new View(500,500); 
                cam.z = -100;
                cam.y = -100;
                cam.rotationX = -1.57 / 2;
                
               addChild(cam.view);
                cont.addChild(cam);
                
                var bm:BitmapData;
                bm = new BitmapData(64,64,false,0);
                bm.noise(123213,0,16,3,true);

                bm = new BitmapData(64,64,false,0);
                bm.noise(123123);
               
               genMap();
               
               var k:int;
               var i:int;
               var yt:int;
               var t:int;
               
               var p:Plane;
               var b:Box;
               var mat:Material = new FillMaterial(0xFF0000,1,2,0);
               var mat2:Material = new FillMaterial(0x00FF00,1,2,0);
               
               for (i = 0; i < mheight; i++)
               {
                   yt = i * mwidth;
                 for (k = 0; k < mwidth; k++)
                 {
                    t = myMap[k+yt]; 
                    if (t < 0) { continue; }
                    if (t ==  0)
                    {
                        p = new Plane(16,16,1,1);
                        p.setMaterialToAllFaces(mat);
                        p.x = k*16;
                        p.z = i*16;
                        p.rotationX = 1.57;
                        cont.addChild(p);
                    }
                    else 
                    if (t > 0)
                    {
                        b = new Box(16,16,16,1,1,1);
                        b.setMaterialToAllFaces(mat2);
                        b.x = k*16;
                        b.z = i *16;
                        b.y = -8;
                        cont.addChild(b);
                    }//endif
                 }//nextk
               }//nexti
               

                  stage.addEventListener(Event.ENTER_FRAME, onEnter);  
                  stage.addEventListener(KeyboardEvent.KEY_DOWN, kdown);
                  stage.addEventListener(KeyboardEvent.KEY_UP, kup);    
               
               
        }//ctor
        
        public function genMap():void
        {
            mwidth = 16;
            mheight = 16;
            var num:int;
            num = mwidth * mheight;
            var i :int;
            myMap = new Array();
            
            for (i = 0; i < num; i++)
            {
                myMap.push( Math.random() > 0.5 ? 0 : 1 );
                
            }//nexti
            
        }//genmap
        
        public function onEnter(e:Event):void
        {
            //ref
         //http://www.dakmm.com/?p=272
            if (cKeyMan.isKeyDown(39) ) { cam.x += 20;}
            if (cKeyMan.isKeyDown(37) ) { cam.x -= 20;}
            if (cKeyMan.isKeyDown(38) ) { cam.y -= 20;}
            if (cKeyMan.isKeyDown(40) ) { cam.y += 20;}
            

             cam.render();
             
        }//onenter
        
        public function kdown(e:KeyboardEvent):void
        {
         cKeyMan.setKey(e.keyCode, true);   
        }//kdown
        
        public function kup(e:KeyboardEvent):void
        {
          cKeyMan.setKey(e.keyCode, false);  
        }//kup
        
        
    }//flashtest
}//package


internal class cKeyMan
   {
       public function cKeyMan() {}//ctor (unused)
       
       public static var vecKey:Vector.<Boolean> = new Vector.<Boolean>(512,true);
       
       public static function setKey(k:int, b:Boolean):void
       {
           if (k < 0) return;
           if (k >= 512) return;
           vecKey[k] = b;
       }//setkey
       
       public static function isKeyDown(k:int):Boolean
       {
           if  (k < 0) return false;
           if (k >= 512) return false;
           return vecKey[k];
       }//iskey
       
   }//keyman