3Dぐりぐり (2)

by nacookan
♥0 | Line 57 | Modified 2009-05-23 22:11:51 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.geom.Point;
    
    [SWF(backgroundColor="0x000000", frameRate="60")]
    
    public class Guriguri3DRoom extends Sprite {
        public function Guriguri3DRoom() {
            var canvas:Sprite = new Sprite();
            
            var wallrear:Sprite = generateWall();
            wallrear.x = 0;
            wallrear.y = 0;
            wallrear.z = 900;
            canvas.addChild(wallrear);
            
            var wallleft:Sprite = generateWall();
            wallleft.x = 0;
            wallleft.y = 0;
            wallleft.z = 0;
            wallleft.rotationY = -90;
            canvas.addChild(wallleft);
            
            var walltop:Sprite = generateWall();
            walltop.x = 0;
            walltop.y = 0;
            walltop.z = 0;
            walltop.rotationX = 90;
            canvas.addChild(walltop);
            
            var wallright:Sprite = generateWall();
            wallright.x = 900;
            wallright.y = 0;
            wallright.z = 900;
            wallright.rotationY = 90;
            canvas.addChild(wallright);
            
            var wallbottom:Sprite = generateWall();
            wallbottom.x = 0;
            wallbottom.y = 900;
            wallbottom.z = 900;
            wallbottom.rotationX = -90;
            canvas.addChild(wallbottom);
            
            canvas.z = -200;
            addChild(canvas);
            addEventListener(Event.ENTER_FRAME, function(e:Event):void{
                canvas.x = mouseX / 500 * -400;
                canvas.y = mouseY / 500 * -400;
            });
        }
        
        private function generateWall():Sprite {
            var wall:Sprite = new Sprite();
            wall.graphics.lineStyle(10, 0xffffff);
            for(var i:Number = 0; i <= 900; i += 50){
                wall.graphics.moveTo(0, i);
                wall.graphics.lineTo(900, i);
                wall.graphics.moveTo(i, 0);
                wall.graphics.lineTo(i, 900);
            }
            return wall;
        }
    }
}