チェンジセット 99

差分発生行の前後
無視リスト:
コミット日時:
2007/10/27 12:32:03 (5 年前)
コミッタ:
fladdict
ログメッセージ:

--

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • fladdict/study/isometrics/isometrics.as

    r87 r99  
    1313        import flash.display.Bitmap; 
    1414        import flash.display.SpreadMethod; 
     15        import tw.Main; 
    1516 
     17        [SWF(frameRate="30",backgroundColor="#000000")] 
    1618        public class isometrics extends Sprite 
    1719        { 
    18                 [@Embed(source="/assets/map.png")] 
    19                 public var tileClass:Class 
     20                public var main:Main 
    2021                 
    21                 public var billSp:Sprite; 
    22                  
    23                  
    24                 public var bill:IsoBillboard 
    25                  
    26                  
    27                 //ビルボードとビューの配列 
    28                 public var billNum:int = 30; 
    29                 public var bills:Array; 
    30                 public var billSps:Array; 
    31                  
    32                  
    33                 //床 
    34                 public var tile:IsoTile; 
    35                 public var tileSp:Bitmap 
    36                  
    37                  
    38                 //ISOCamera 
    39                 public var cam:IsoCamera 
    40                  
    41                 public var helper:SpriteHelper 
    4222                public function isometrics() 
    4323                { 
    44                         SketchBook.init(stage); 
    45                         SketchBook.noScale(); 
    46                         SketchBook.topLeft(); 
    47                          
    48                         helper = new SpriteHelper(this); 
    49                         helper.onEnterFrame = onEnterFrame; 
    50                         helper.onKeyDown = keyDownHandler; 
    51                          
    52                         //var e:IsometricEngine = new IsometricEngine(); 
    53                          
    54                         //カメラの作成 
    55                         cam = new IsoCamera(); 
    56                         cam.centerX = SketchBook.centerX; 
    57                         cam.centerY = SketchBook.centerY; 
    58                         cam.rotation = 0; 
    59                         //cam.x = 50; 
    60                         //cam.y = 50; 
    61                          
    62                          
    63                         //床の作成 
    64                         tile = new IsoTile(); 
    65                         tileSp = new tileClass()// new Sprite(); 
    66                         tileSp.smoothing = true; 
    67                         //var g:Graphics = tileSp.graphics; 
    68                         //g.beginFill(0x000000,1); 
    69                         //g.drawRect(0,0,100,100); 
    70                         this.addChild(tileSp); 
    71                          
    72                          
    73                         //暫定ビルボードの作成 
    74                         bills = []; 
    75                         billSps = []; 
    76                         for(var i:int=0; i<billNum; i++) 
    77                         { 
    78                                 bill = new IsoBillboard(); 
    79                                 bill.y = Math.random()*100-50; 
    80                                 bill.x = Math.random()*100-50; 
    81                                 bills.push(bill); 
    82                                  
    83                                 billSp = new Sprite(); 
    84                                 billSp.graphics.beginFill(0xff0000,1); 
    85                                 billSp.graphics.drawCircle(0,0,2); 
    86                                 billSp.graphics.endFill(); 
    87                                 addChild(billSp); 
    88                                  
    89                                 billSps.push(billSp);    
    90                         } 
    91                          
    92                         var sp:Sprite = new Sprite(); 
    93                         sp.graphics.beginFill(0x0000ff,0.8); 
    94                         sp.graphics.drawCircle(0,0,10); 
    95                         sp.graphics.endFill(); 
    96                         sp.x = SketchBook.centerX; 
    97                         sp.y = SketchBook.centerY; 
    98                         addChild(sp); 
    99                 } 
    100                  
    101                  
    102                 public function onEnterFrame():void 
    103                 { 
    104                         //cam.rotation +=1//  (stage.mouseX - stage.width )* 0.5 
    105                          
    106                         var mat:Matrix 
    107                          
    108                          
    109                          
    110                         for(var i:int=0; i<billNum; i++) 
    111                         { 
    112                                 bill = bills[i]; 
    113                                 billSp = billSps[i]; 
    114                                  
    115                                 var pt:Point = IsometricsUtil.getIsoPoint(new Point(bill.x, bill.y),cam); 
    116                                                  
    117                                 //ビルボードの設置 
    118                                 billSp.x = pt.x 
    119                                 billSp.y = pt.y 
    120                         } 
    121                          
    122                          
    123                          
    124                         //床の回転 
    125                         mat = IsometricsUtil.getIsoMatrix4Basement(tile.transform.matrix, cam); 
    126                         tileSp.transform.matrix = mat; 
    127                 } 
    128                  
    129                 private function keyDownHandler(code:Number):void 
    130                 { 
    131                         //38, 40, 37, 39 上下左右 
    132                         switch(code) 
    133                         { 
    134                                 case 38: 
    135                                         //上 
    136                                         cam.y -= 5; 
    137                                         break 
    138                                 case 40: 
    139                                         //下 
    140                                         cam.y += 5; 
    141                                         break 
    142                                 case 37: 
    143                                         //左 
    144                                         cam.x -= 5; 
    145                                         break 
    146                                 case 39: 
    147                                         //右 
    148                                         cam.x += 5; 
    149                                         break 
    150                                 case 97: 
    151                                         cam.rotation -= 4 
    152                                         break 
    153                                 case 98: 
    154                                         cam.rotation += 4 
    155                                         break 
    156                                 case 100: 
    157                                         cam.zoom += 0.1 
    158                                         break 
    159                                 case 101: 
    160                                         cam.zoom -= 0.1 
    161                                         break 
    162                         } 
     24                        main = new Main(); 
     25                        addChild(main); 
     26                        main.run(); 
    16327                } 
    16428        } 
  • fladdict/study/isometrics/net/fladdict/isometrics/IsometricsUtil.as

    r87 r99  
    2121                { 
    2222                        var unit:Number = 360 / imageNum; 
    23                         rotation = (rotation + cam.rotation + 360)%360; 
     23                         
     24                        rotation = (rotation - cam.rotation + 360)%360; 
    2425                         
    2526                        var index:int = Math.round( rotation/unit ); 
    26                          
    27                         return 0; 
     27                        if(index == imageNum) 
     28                                index = 0; 
     29                        return index; 
    2830                } 
    2931