forked from: forked from: forked from: papervision test

by mapache forked from forked from: forked from: papervision test (diff: 2)
♥0 | Line 59 | Modified 2011-02-13 07:12:47 | MIT License
play

ActionScript3 source code

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

// forked from hacker_pdf0c4e1's forked from: forked from: papervision test
// forked from Johannes's forked from: papervision test
// forked from Johannes's papervision test
package {
    import flash.events.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;

    [SWF(backgroundColor='0x3CC9EE')]

    public class Sample3 extends BasicView {
        public var keyboard:Vector.<Boolean> = new Vector.<Boolean>(255);
        public var light:PointLight3D;
        public var player:Sphere;
        public var r:Number = 0;
        
        public function Sample3():void {
                trace("aaa");
            light = new PointLight3D(true);
            light.x = 0;
            light.y = 100;
            light.z = 0;
            
            player = new Sphere(new FlatShadeMaterial(light, 0xFFFFFF, 0xCCCCCC), 50, 10, 8);
            
            scene.addChild(player);
            startRendering();

            addEventListener(Event.ENTER_FRAME, loop);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, kD);
            stage.addEventListener(KeyboardEvent.KEY_UP, kU);
            
            camera.target = player;
            camera.z = -400;
        }

        public function kD(e:KeyboardEvent):void {
            if(e.keyCode < 255) {
                keyboard[e.keyCode] = true;
            }
        }
        
        public function kU(e:KeyboardEvent):void {
            if(e.keyCode < 255) {
                keyboard[e.keyCode] = false;
               
            }
        }
        
        public function loop(e:Event):void {
            r += 0.1;
            
            light.x = player.x + (100 * Math.cos(r));
            light.z = player.z + (100 * Math.sin(r));
            
            if(keyboard[37]) {
                camera.x -= 10;
            }
            
            if(keyboard[39]) {
                camera.x += 10;
            }
            
            if(keyboard[38]) {
                camera.z += 10;
            }
            
            if(keyboard[40]) {
                camera.z -= 10;
            }
        }
    }
}