【途中】燃える5重の塔

by soh1106c
5重の塔のデータを軽いものに取り替えた。

【元ネタ】YouTube - 燃える5重の塔 
http://www.youtube.com/watch?v=to5dOcdbays
♥2 | Line 95 | Modified 2010-12-31 02:49:06 | MIT License
play

ActionScript3 source code

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

// forked from soh1106c's 【途中】燃える5重の塔
package {
    import flash.events.*;
    import flash.display.BlendMode;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.filters.BlurFilter;
    import flash.geom.ColorTransform;
    
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.view.*;
    import org.papervision3d.render.*;
    import org.papervision3d.objects.parsers.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.layer.BitmapEffectLayer;
    import org.papervision3d.core.effects.BitmapFireEffect;
    import org.papervision3d.core.effects.utils.BitmapClearMode;
    import org.papervision3d.scenes.Scene3D;
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.core.proto.CameraObject3D;
    import org.papervision3d.view.Viewport3D;
    import org.papervision3d.events.*;
    import org.papervision3d.objects.*;

    public class gojyuunotou extends BasicView {
        public function gojyuunotou():void {
            
            viewport.containerSprite.cacheAsBitmap=false;
            scene=new Scene3D;
            
            var bfx:BitmapEffectLayer=new BitmapEffectLayer(viewport,stage.stageWidth,stage.stageHeight,true,0,BitmapClearMode.CLEAR_PRE,true,false);
            var f:BitmapFireEffect=new BitmapFireEffect  ;
            f.fadeRate=0.1;//色変化割合(小さい数字程細かく変化)
            f.flameSpread=1;//?
            f.flameHeight=0.5;//高さ
            f.distortion=1;//ゆらぎ
            f.distortionScale=1;//ゆらぎの波高さ
            f.smoke=1;//黒い部分の度合
            f.blueFlame=false;//or
            bfx.addEffect(f);
            
            var light:PointLight3D=new PointLight3D();
            var mat_fire:BitmapFileMaterial=new BitmapFileMaterial("http://soh1106.lolipop.jp/res/fire/fire.png");
            mat_fire.doubleSided=true;
            var mat_fire2:BitmapFileMaterial=new BitmapFileMaterial("http://soh1106.lolipop.jp/res/fire/fire.png");
            
            var fire:Cylinder=new Cylinder(mat_fire2, 300, 1000, 16, 12, 100);
            fire.y=0;
            scene.addChild(fire);     
            
            var fire1:Plane=new Plane(mat_fire,600,600);
            fire1.rotationX=90;
            fire1.y=-400;
            scene.addChild(fire1);
            
            var fire2:Plane=new Plane(mat_fire,700,700);
            fire2.rotationX=90;
            fire2.y=-300;
            scene.addChild(fire2);
            
            var fire3:Plane=new Plane(mat_fire,600,600);
            fire3.rotationX=90;
            fire3.y=-150;
            scene.addChild(fire3);
            
            var fire4:Plane=new Plane(mat_fire,550,550);
            fire4.rotationX=90;
            fire4.y=0;
            scene.addChild(fire4);
            
            var fire5:Plane=new Plane(mat_fire,500,500);
            fire5.rotationX=90;
            fire5.y=150;
            scene.addChild(fire5);
            
            var fire6:Plane=new Plane(mat_fire,450,450);
            fire6.rotationX=90;
            fire6.y=300;
            scene.addChild(fire6);       
            
            viewport.containerSprite.addLayer(bfx);
            bfx.addDisplayObject3D(fire);
            bfx.addDisplayObject3D(fire1);
            bfx.addDisplayObject3D(fire2);
            bfx.addDisplayObject3D(fire3);
            bfx.addDisplayObject3D(fire4);
            bfx.addDisplayObject3D(fire5);
            bfx.addDisplayObject3D(fire6);
            viewport.interactive=true;

            var dae:DAE=new DAE();
            dae.load("http://soh1106.lolipop.jp/res/5jyuunotou/3/gojyuunotou2.DAE");
            scene.addChild(dae);

            dae.scale=1;
            dae.y=-500;

            //renderer=new QuadrantRenderEngine();
            renderer=new BasicRenderEngine  ;
            startRendering();
            addEventListener(Event.ENTER_FRAME,loop);
        }

        private function loop(e:Event):void {
            var rot:Number=(mouseX/stage.stageWidth)*720;
            camera.x=1000*Math.sin(rot*Math.PI/180);
            camera.z=1500*Math.cos(rot*Math.PI/180);
            camera.y=1000*(mouseY/stage.stageHeight)-500;
        }
    }
}