砂ゲー2!

by akamario forked from 砂ゲー (diff: 523)
♥2 | Line 533 | Modified 2013-08-23 23:26:54 | MIT License
play

ActionScript3 source code

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

// forked from kuma360's 砂ゲー
//vertion 1.0(?)
package 
{
    import com.bit101.components.*;
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    
    [SWF ( width = 465, height = 465, frameRate = 60 )];
    public class Main extends Sprite 
    {
        
        private var _CANVAS:BitmapData = new BitmapData ( stage.stageWidth , stage.stageHeight , false , 0 ) ;
        
        //宣伝用//////////////////////
        private var _S0:PushButton ; 
        /////////////////////////////
        private var _E0:PushButton ;        
        private var _E1:PushButton ;        
        private var _E2:PushButton ;        
        private var _E3:PushButton ;        
        private var _B0:PushButton ; 
        private var _B1:PushButton ; 
        private var _B2:PushButton ; 
        private var _B3:PushButton ; 
        private var _B4:PushButton ;
        private var _B5:PushButton ; 
        private var _B6:PushButton ;
        private var _B7:PushButton ;
        private var _B8:PushButton ;
        private var _B9:PushButton ;
        private var _B10:PushButton ;
        private var _B11:PushButton ;
        private var _B12:PushButton ;
        
        
        private var _CLICK:Boolean = false ;
        private var _COLOR:uint = 0x836034;
        private var _CSWIT:int
        private var _DSWIT:int
        
        private var _BX:int = 0 ;
        private var _BY:int = 0 ;
        
        
        
        
        public function Main():void {
            
            addChild ( new Bitmap ( _CANVAS ) ) ;
            
            //宣伝用////////////////////////////////////////////////////
//            _S0 = new PushButton ( this, 465-100 , 0, "Ad:kuma-flashgame" ) ;
//            _S0.addEventListener ( MouseEvent.CLICK , function ():void { var url:URLRequest = new URLRequest ( "http://kuma-flashgame.blogspot.com/" ) ; navigateToURL( url ); } ) ;
            //////////////////////////////////////////////////////////
            _E0 = new PushButton ( this, 25 , 0, "RESET" ) ;            
            _E1 = new PushButton ( this, 125 , 0, "SAND OFF" ) ;            
            _E2 = new PushButton ( this, 225 , 0, "RAIN OFF" ) ;            
            _E3 = new PushButton ( this, 325 , 0, "ON" ) ;            
            _B0 = new PushButton ( this,  25 , 25, "METAL" ) ;
            _B1 = new PushButton ( this, 125 , 25, "WALL" ) ;
            _B2 = new PushButton ( this, 225 , 25, "SAND" ) ;
            _B3 = new PushButton ( this, 325 , 25, "WATER" ) ;
            _B4 = new PushButton ( this, 25 , 45, "LAVA" ) ;
            _B5 = new PushButton ( this, 125 , 45, "Wood" ) ;
            _B6 = new PushButton ( this, 225 , 45, "SAND2" ) ;
            _B7 = new PushButton ( this, 325 , 45, "ICE" ) ;
            _B8 = new PushButton ( this, 25 , 65, "FIRE" ) ;
            _B9 = new PushButton ( this, 125 , 65, "AIR" ) ;
            _B10 = new PushButton ( this, 225 , 65, "THUNDER" ) ;
            _B11 = new PushButton ( this, 325 , 65, "PAPER" ) ;
            _B12 = new PushButton ( this, 25 , 85, "BOMB" ) ;
            
            
            _B1.enabled = false ;
            _E0.addEventListener ( MouseEvent.CLICK , function ():void { _CSWIT = 1 ; _E0.enabled = false ; } ) ;
            _E1.addEventListener ( MouseEvent.CLICK , function ():void { _CSWIT = 2 ; _E1.enabled = false ; _E3.enabled = true ; } ) ;
            _E2.addEventListener ( MouseEvent.CLICK , function ():void { _DSWIT = 1 ; _E2.enabled = false ; _E3.enabled = true ; } ) ;
            _E3.addEventListener ( MouseEvent.CLICK , function ():void { _CSWIT = 0 ; _DSWIT = 0 ; _E3.enabled = true ; } ) ;
            _B0.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x808080 ;  _B0.enabled = false ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true  ; _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B1.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x836034 ;  _B0.enabled = true  ;  _B1.enabled = false ; _B2.enabled = true  ; _B3.enabled = true  ; _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B2.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xF7E779 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = false ; _B3.enabled = true  ; _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B3.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x80A2F0 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = false ; _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B4.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xF08280 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = false ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B5.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x10F270 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = false ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B6.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xF0A200 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = false ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B7.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xD0F2F0 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = false ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B8.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xF02220 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = false ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B9.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x404450 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = false ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B10.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xE0E034 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = false ; _B11.enabled = true ; _B12.enabled = true ; } ) ;
            _B11.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0xEEEEEE ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = false ; _B12.enabled = true ; } ) ;
            _B12.addEventListener ( MouseEvent.CLICK , function ():void { _COLOR = 0x3580A3 ;  _B0.enabled = true  ; _B1.enabled = true  ; _B2.enabled = true  ; _B3.enabled = true ;  _B4.enabled = true ; _B5.enabled = true ; _B6.enabled = true ; _B7.enabled = true ; _B8.enabled = true ; _B9.enabled = true ; _B10.enabled = true ; _B11.enabled = true ; _B12.enabled = false ; } ) ;
            stage.addEventListener ( MouseEvent.MOUSE_DOWN , function ():void { _CLICK = true ; } ) ;
            stage.addEventListener ( MouseEvent.MOUSE_UP   , function ():void { _CLICK = false; } ) ;
            addEventListener ( Event.ENTER_FRAME , RUN ) ;
            
        }
        
        
        
        
        public function RUN ( e:Event ):void {
            
            _CANVAS.lock() ;
            if (_CSWIT == 1){
             _CANVAS.fillRect ( new Rectangle ( 0 , 0 , 500 , 500 ) , 0 ) ;
            _CSWIT = 0 ;
            _E0.enabled = true ;       
            }
            if ( _CSWIT != 2 ){
            
            
            
                    var CF:int;
            ////////////////////////////////////
            for ( var I:int = 150 ; I < 325 ; ++ I ) {
                
                if ( Math.random() < .1 ) {
                    _CANVAS.setPixel ( I , 30 , 0xF7E779 ) ;
                }
                
            }

            _E1.enabled = true ;       
            }
            if (_DSWIT != 1){            
             for ( var IX:int = 0 ; IX < 450 ; ++ IX ) {
                
                if ( Math.random() < .1/2 ) {
                    _CANVAS.setPixel ( IX , 30 , 0x80A2F0 ) ;
                }
                
            }

            _E2.enabled = true ; 
                        }
            ////////////////////////////////////
            if ( _CLICK && 60 < mouseY && 60 < _BY ) {
                
                for ( var J:int = 0 ; J < 20 ; ++ J ) {
                    var R:Number = J / 20 ;
                    _CANVAS.fillRect ( new Rectangle ( _BX * R + mouseX * ( 1 - R ) , _BY * R + mouseY * ( 1 - R ) , 5 , 5 ) , _COLOR ) ;
                }
                
            }
            _BX = mouseX ;
            _BY = mouseY ;
            
            ////////////////////////////////////
            for ( var X:int = 0 ; X < _CANVAS.width ; ++ X ) {
                
                for ( var Y:int = _CANVAS.height - 1 ; Y >= 0 ; -- Y ) {
                    
                    var C:uint = _CANVAS.getPixel ( X , Y ) ;
                    if ( C == 0 ) {
                        continue ;
                    }
                    if ( C == 0x808080 ) {
                            T = _CANVAS.getPixel ( X , Y + 1) ;                         
                        if ( T == 0xF02220  && Math.random() < .03 ) {                           
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X , Y + 1 , T ) ;
                                continue ;
                            }
                    }                    
                    

                    if ( C == 0xF7E779 ) {
                        
                        var T:uint ;
                        var T3:uint ;
                        var T4:uint ;
                        var T5:uint ; 
                        var TX:int ;
                        var TY:int ;
                        var TY2:int ;
                        var TC:int ;

                        
                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X , Y + 1 , C ) ;
                                continue ;
                            }
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            
                            
                            //水より砂の方が重い,適当な確率で場所の置換を許す。
                            if ( T == 0x80A2F0 && Math.random() < .5 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X , Y + 1 , C ) ;
                                continue ;
                            }
                        }
                        
                        {//左右移動
                            
                            TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                            T = _CANVAS.getPixel ( TX , Y ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                            
                            //水より砂の方が重い,適当な確率で場所の置換を許す。
                            if ( T == 0x80A2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                            if ( T == 0x80f2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T) ;
                                _CANVAS.setPixel (  TX , Y , C) ;
                                
                                continue ;
                            }
                            if ( T == 0x10F270 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y+1 , T) ;
                                _CANVAS.setPixel (  X , Y , C) ;
                                
   
                                continue ;
                            }
                        }
                        
                    }
                    
                    if ( C == 0x80A2F0 ) {
                    //80a2f0 : 通常の水    
                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 || T == 0x404450 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X  ,Y + 1  , C ) ;
                                continue ;
                            }
                        }
                        if ( T == 0xF02220) {
                                _CANVAS.setPixel ( X , Y     , 0x404450 ) ;
                                _CANVAS.setPixel ( X  ,Y + 1  , 0 ) ;
                                continue ;
                            }
                        
                        {//左右移動
                            TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                            T = _CANVAS.getPixel ( TX , Y ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X  , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                        }
                            if ( T == 0x80f2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T) ;
                                _CANVAS.setPixel (  X ,TY , C ) ;
                                continue ;
                            }
                            if ( T == 0 || T == 0xF02220) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X  ,Y + 1  , C ) ;
                                continue ;
                            }
                          if ( T == 0x10F270 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y+1 , T) ;
                                _CANVAS.setPixel (  X , Y , C) ;
                                
                                continue ;
                          }
                           if ( T == 0x808080 && Math.random() * 7 < 0.1 ) {
                               TC = 0xF7E779
                                _CANVAS.setPixel (  X , Y , TC ) ;
                                _CANVAS.setPixel ( X , Y+1 , C ) ;
                                continue ;
                           }
                           if ( T == 0x202220 && Math.random() * 7 < 0.1 ) {

                                _CANVAS.setPixel (  X , Y , C ) ;
                                _CANVAS.setPixel ( X , Y+1 , C ) ;
                                continue ;
                           }
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                           if ( T == 0xD0F2F0 && Math.random() * 7 < 0.1 ) {
                                _CANVAS.setPixel (  X , Y ,  T ) ;
                                _CANVAS.setPixel ( X , Y+1 , T ) ;
                                continue ;
                            }
                            T = _CANVAS.getPixel ( X + 1 , Y ) ;                            
                          if ( T == 0xD0F2F0 && Math.random() * 7 < 0.1 ) {
                                _CANVAS.setPixel (  X , Y ,  T ) ;
                                _CANVAS.setPixel ( X+1 , Y , T ) ;
                                continue ;
                            }
                            T = _CANVAS.getPixel ( X , Y - 1 ) ;
                           if ( T == 0xD0F2F0 && Math.random() * 7 < 0.1 ) {
                                _CANVAS.setPixel (  X , Y ,  T ) ;
                                _CANVAS.setPixel ( X , Y-1 , T ) ;
                                continue ;
                            }
                            T = _CANVAS.getPixel ( X - 1 , Y ) ;                            
                          if ( T == 0xD0F2F0 && Math.random() * 7 < 0.1 ) {
                                _CANVAS.setPixel (  X , Y ,  T ) ;
                                _CANVAS.setPixel ( X-1 , Y , T ) ;
                                continue ;
                            }
                    }
                    if ( C == 0x80F2F0 ) {
                        
  

                        
                        //{//左右移動
                            //TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            //T = _CANVAS.getPixel ( TX , Y ) ;
                            //if ( T == 0 ) {
                                //_CANVAS.setPixel (  X , Y , T ) ;
                                //_CANVAS.setPixel ( TX , Y , C ) ;
                                //continue ;
                            //}
                        //}

                    }
                    if ( C == 0xF08280 ) {
                        
                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X  ,Y + 1  , C ) ;
                                continue ;
                            }
                        }
                        
                        {//左右移動
                            TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                            T = _CANVAS.getPixel ( TX , Y ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X  , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                        }
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                          if ( T == 0xF7E779 && Math.random() * 7 < 0.7 ) {
                                _CANVAS.setPixel (  X , Y , C ) ;
                                _CANVAS.setPixel ( X , Y+1 , 0 ) ;
                                continue ;
                            }
                          if ( T == 0x808080 && Math.random() * 7 < 0.1 ) {
                                _CANVAS.setPixel (  X , Y , C ) ;
                                _CANVAS.setPixel ( X , Y+1 , 0 ) ;
                                continue ;
                            }

                          if ( T == 0x80A2F0 ) {
                              TC = 0xEEEEEE
                                _CANVAS.setPixel (  X , Y , TC ) ;
                                _CANVAS.setPixel ( X , Y+1 ,TC ) ;
                                continue ;
                          }
                          if ( T == 0xD0F2F0 ) {
                              TC = 0x80A2F1
                                _CANVAS.setPixel (  X , Y , TC ) ;
                                _CANVAS.setPixel ( X , Y+1 ,TC ) ;
                                continue ;
                          } 
                          if ( T == 0xEEEEEE ) {
                                _CANVAS.setPixel (  X , Y , C ) ;
                                _CANVAS.setPixel ( X , Y+1 , 0 ) ;
                                continue ;
                            }                         
                            T = _CANVAS.getPixel ( X , Y - 1 ) ;
                          if ( T == 0xF7E779 && Math.random() * 7 < 0.7 ) {
                                _CANVAS.setPixel (  X , Y , C ) ;
                                _CANVAS.setPixel ( X , Y -1, 0 ) ;
                                continue ;
                            }
                           if ( T == 0x80A2F0 ) {
                              TC = 0xEEEEEE
                                _CANVAS.setPixel (  X , Y , TC ) ;
                                _CANVAS.setPixel ( X , Y-1 ,TC ) ;
                                continue ;
                          }
                    
                    
                }
                
            
                    if ( C == 0xEEEEEE ) {
                         T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0x80A2F0 || T == 0xCCCCCC ) {
                                _CANVAS.setPixel (  X , Y , 0xCCCCCC ) ;
                                _CANVAS.setPixel (  X , Y + 1 , 0xCCCCCC ) ;
                                
                                continue ;
                            }
                         T = _CANVAS.getPixel ( X , Y - 1 ) ;
                            if ( T == 0x80A2F0 || T == 0xCCCCCC ) {
                                _CANVAS.setPixel (  X , Y , 0xCCCCCC ) ;
                                _CANVAS.setPixel (  X , Y + 1 , 0xCCCCCC ) ;
                                
                                continue ;
                            }

                    

                    }
                    if ( C == 0xCCCCCC ) {
                        TX = X + Math.floor ( Math.random() * 3 ) - 1 ;
                         T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel (  X , Y , 0 ) ;
                                if (Math.random() * 1 < .1) { 
                                _CANVAS.setPixel (  TX , Y + 1 , C ) ;
                                }else{
                                _CANVAS.setPixel (  X , Y + 1 , C ) ;
                                }

                                continue ;
                            }
                            if ( T == 0xF08280 ) {
                                _CANVAS.setPixel (  X , Y , 0 ) ;
                                _CANVAS.setPixel (  TX , Y + 1 , C ) ;
                                
                                

                                continue ;
                            }
                            if ( T == 0xF02220 ) {
                                _CANVAS.setPixel (  X , Y , 0 ) ;
                                _CANVAS.setPixel (  X , Y + 1 , C ) ;
                                
                                

                                continue ;
                            }
                            if ( T == 0x80A2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y+1 , C ) ;
                                continue ;
                            }

                    

                    }
                    if ( C == 0xE0E034 ) {
                        var TX2:int ;
                        var T2:int ;
                         TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                         T = _CANVAS.getPixel ( TX , Y + 1 ) ;
                         T2 = _CANVAS.getPixel ( TX , Y + 2 ) ;
                            if ( T == 0 || T == 0x80A2F0 && T2 == 0 || T2 == 0x80A2f0 ) {
                                _CANVAS.setPixel (  X , Y , 0 ) ;
                                _CANVAS.setPixel ( TX , Y+2 , C ) ;
                                continue ;
                            }
                            if ( T == 0x808080 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( X , Y+1 , C ) ;
                                continue ;
                            }
                            if ( T != 0 || T != 0x80A2F0) {
                                if (Math.random() < 0.5 ) {
                                _CANVAS.setPixel (  TX , Y , 0 ) ;
                                }
 //                               _CANVAS.setPixel ( X+Math.random()*5-2 , Y+2 , C ) ;
                                continue ;
                            }

                    

                    }
                    if ( C == 0x80A2F1 ) {
                        //80a2f1 : 融けた氷
                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X  ,Y + 1  , C ) ;
                                continue ;
                            }
                        }
                           if ( T == 0xD0F2F0 && Math.random() < .01 ) {
                                _CANVAS.setPixel (  X , Y+1 , C) ;
                                _CANVAS.setPixel (  X , Y , C) ;
                                
                                continue ;
                          }                        
                        {//左右移動
                            TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                            T = _CANVAS.getPixel ( TX , Y ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X  , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                        }
                            if ( T == 0x80f2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T) ;
                                _CANVAS.setPixel (  X ,TY , C ) ;
                                continue ;
                            }
                          if ( T == 0x10F270 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y+1 , T) ;
                                _CANVAS.setPixel (  X , Y , C) ;
                                
                                continue ;
                          }
                           if ( T == 0x808080 && Math.random() * 7 < 0.1 ) {
                               TC = 0xF7E779
                                _CANVAS.setPixel (  X , Y , TC ) ;
                                _CANVAS.setPixel ( X , Y+1 , C ) ;
                                continue ;
                           }

                            
                            
                    }                    if ( C == 0xF0A200 ) {                
                        
                                                                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 2 ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X , Y + 2 , C ) ;
                                continue ;
                            }
                        }
                        {//左右移動
                            TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                            T = _CANVAS.getPixel ( TX , Y ) ;
                            if ( T == 0 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( TX , Y , C ) ;
                                continue ;
                            }
                            T = _CANVAS.getPixel ( X , Y + 1) ;
                            if ( T == 0x80A2F0 && Math.random() < .8 ) {
                                _CANVAS.setPixel (  X , Y , T ) ;
                                _CANVAS.setPixel ( X , Y+1 , C ) ;
                                continue ;
                            }
                        }

                 
                }
                    if ( C == 0xd0f2f0 ) {                
                        
                        {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0xF02220 ) {
                                _CANVAS.setPixel ( X , Y     , 0x80A2F0 ) ;
                                _CANVAS.setPixel ( X , Y + 1 , 0 ) ;
                                continue ;
                            }
                        }
                        

                 
                    }   
                    
                    if ( C == 0x3580A3 ) {                
                            {//落下
                            T = _CANVAS.getPixel ( X , Y + 1 ) ;
                            if ( T == 0 || T == 0xF02220 || T == 0x404450) {
                                _CANVAS.setPixel ( X , Y     , T ) ;
                                _CANVAS.setPixel ( X , Y + 1 , C ) ;
                                continue ;
                            }else{
                                T2 = _CANVAS.getPixel ( X - 1 , Y) ;
                                T3 = _CANVAS.getPixel ( X + 1 , Y) ;
                                T4 = _CANVAS.getPixel ( X , Y - 1 ) ;
                                TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                                TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                                T5 = _CANVAS.getPixel ( TX , TY ) ;
                                _CANVAS.setPixel ( TX , TY , T ) ;
                                _CANVAS.setPixel ( X  , Y  , T5 ) ;
                                TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                                TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                                T5 = _CANVAS.getPixel ( TX , TY ) ;
                                _CANVAS.setPixel ( TX , TY , T2 ) ;
                                _CANVAS.setPixel ( X  , Y  , T5 ) ;
                                TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                                TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                                T5 = _CANVAS.getPixel ( TX , TY ) ;
                                _CANVAS.setPixel ( TX , TY , T3 ) ;
                                _CANVAS.setPixel ( X  , Y  , T5 ) ;
                                TX = X + Math.floor ( Math.random() * 7 ) - 3 ;
                                TY = Y + Math.floor ( Math.random() * 7 ) - 3 ;
                                T5 = _CANVAS.getPixel ( TX , TY ) ;
                                _CANVAS.setPixel ( TX , TY , T4 ) ;
                                _CANVAS.setPixel ( X  , Y  , T5 ) ;
                            }

                        }
                    } 
                
                }
            }
            for ( X = 0 ; X < _CANVAS.width ; ++ X ) {
                
                for ( Y = 30 ; Y < _CANVAS.height ; ++ Y ) {
                    
                    C = _CANVAS.getPixel( X, Y ) ;
                    if ( C == 0xF02220 ) {
                    var DX:int;
  
                      {//浮上
                        T = _CANVAS.getPixel ( X, Y - 1) ;X
                        if ( T == 0 || T == C ) {
                            DX = Math.round ( Math.random() * 2  - 1 );
                            _CANVAS.setPixel ( X, Y    , 0 ) ;
                            _CANVAS.setPixel ( X + DX, Y - 1, C ) ;
                            continue;
                        }

                        // 
                        if ( T == 0xF7E779 || T == 0x836034 || T == 0xEEEEEE || T == 0x10F270 ) {
                            _CANVAS.setPixel ( X, Y, 0 ) ;
                            _CANVAS.setPixel ( X, Y - 1, C) ;
                        }
                        
                        
                        
                      }
                    }                  
                    if ( C == 0x404450 ) {
  
                      {//浮上
                        T = _CANVAS.getPixel ( X, Y - 1) ;X
                        if ( Math.random() > .5 ) {
                        if ( T == 0 || T == C ) {
                            DX = Math.round ( Math.random() * 2  - 1 );
                            _CANVAS.setPixel ( X, Y    , 0 ) ;
                        if ( Math.random() > .25 ) {
                            _CANVAS.setPixel ( X + DX, Y - 1, C ) ;
                            _CANVAS.setPixel ( X - DX, Y - 1, C ) ;
                        }
                            continue;
                        }
                        }
                        if ( T == 0x836034 || T == 0xD0F2F0 ) {
                            _CANVAS.setPixel ( X, Y    , 0x80A2F0 ) ;
                        }
                        


                        // 

                        
                        
                      }
                    }                 
                }
                
            }
            
            for ( X = 0 ; X < _CANVAS.width ; ++ X ) {
              _CANVAS.setPixel ( X, 30, 0 ) ;
            }
            
            _CANVAS.unlock() ;
            
        }
        
    }
    
}