forked from: sea

by bradsedito
...
@author sliz http://game-develop.net/blog
♥0 | Line 50 | Modified 2011-07-30 07:57:22 | MIT License
play

ActionScript3 source code

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

// forked from lizhi's sea
package {
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.geom.Point;
    import org.papervision3d.core.geom.renderables.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;
    import org.papervision3d.view.stats.StatsView;

    /**
     * ...
     * @author sliz http://game-develop.net/blog
     */
           [SWF(backgroundColor=0)]
    public class V extends BasicView {
        //private var p:Plane;
        private var p:Sphere;
        private var m:WireframeMaterial = new WireframeMaterial(0xffffff, .6);
        private var moma:MovieMaterial = new MovieMaterial();
        private var cMat:ColorMaterial = new ColorMaterial(0xff9900);
        private var bmd:BitmapData = new BitmapData(21, 21, false);
        private var p2:Point = new Point();
        private var addp:Point = new Point(0, 1);
        private var rseed:int = int(100 * Math.random());

        public function V(){
            //p = new Plane(m, 3000, 3000, 20, 20);
            //p.rotationZ += 1;
           // p.rotationX += 1;
             p = new Sphere(m, 500, 25, 50);//cMat, 1000, 20, 50);   
            scene.addChild(p);
            startRendering();
            addEventListener(Event.ENTER_FRAME, update);
          //  camera.y -= 2000;
            camera.z = 1000;
            var view:StatsView = new StatsView(renderer);
            addChild(view);
            //view.x = 600;
            addChild(new Bitmap(bmd));
        }

        private function update(e:Event):void 
        {
            p.rotationY += 2;
            p.y = stage.stageWidth/2;
            p2 = p2.add(addp);
            bmd.perlinNoise(100, 100, 2, rseed, true, true, 6, true, [p2]);
            var vs:Array = p.geometry.vertices;
            var cs:Array = [];
            for (var i:int = 0; i < bmd.width; i++){
                for (var j:int = 0; j < bmd.height; j++){
                    cs.push(bmd.getPixel(i, j));
                }
            }
            for (i = 0; i < vs.length; i++){
                var v:Vertex3D = vs[i];
                v.z =   900 * cs[i] / 0xffffff - 450;
            }
        }
    }

}