※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

 notice: Flash editor updated! Join the development! Thanks to MiniBuilder


FORKED

愚直にクォータービュー描画(クリックで回転) forked from: 愚直にクォータービュー描画(クリックで回転) [diff(1)]

  1. // forked from nemu90kWw's 愚直にクォータービュー描画(クリックで回転)
  2. package
  3. {
  4.     import flash.display.*;
  5.     import flash.geom.*;
  6.     import flash.events.*;
  7.     import flash.net.*;
  8.     import flash.system.*;
  9.     import net.hires.debug.Stats;
  10.     
  11.     [SWF(width="465", height="465", frameRate="60")]
  12.     public class FlashTest extends Sprite
  13.     {
  14.         private var loader:Loader = new Loader();
  15.         private var bmp:BitmapData;
  16.         
  17.         private var buffer:BitmapData;
  18.         private var screen:Sprite;
  19.         
  20.         private var platform:Platform = new Platform();
  21.         
  22.         function FlashTest()
  23.         {
  24.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
  25.             loader.load(new URLRequest("http://assets.wonderfl.net/images/related_images/b/bd/bd47/bd4784e7b7a42681cfb17ab446517c8899521a8d"), new LoaderContext(true));
  26.         }
  27.         
  28.         private function onLoadComplete(e:Event):void
  29.         {
  30.             loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete);
  31.             
  32.             buffer = new BitmapData(465465false);
  33.             screen = new Sprite();
  34.             screen.graphics.beginBitmapFill(buffer);
  35.             screen.graphics.drawRect(00, buffer.width, buffer.height);
  36.             addChild(screen);
  37.             
  38.             bmp = Bitmap(loader.content).bitmapData;
  39.             
  40.             addChild(new Stats());
  41.             stage.mouseChildren = false;
  42.             stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
  43.             addEventListener(Event.ENTER_FRAME, onEnterFrame);
  44.         }
  45.         
  46.         public var camera_x:int = 216;
  47.         public var camera_y:int = 150;
  48.         
  49.         private function onEnterFrame(e:Event):void
  50.         {
  51.             camera_x = mouseX-465 + (platform.left+platform.right)/2;
  52.             camera_y = mouseY-465 + (platform.top+platform.bottom)/2;
  53.             
  54.             buffer.fillRect(buffer.rect, 0x304060);
  55.             var point:Point = new Point();
  56.             for(var y:int = 0; y < platform.mapsize_y; y++)
  57.             {
  58.                 point.x = -camera_x + y*16 - 16;
  59.                 for(var x:int = 0; x < platform.mapsize_x; x++)
  60.                 {
  61.                     point.y = -camera_y + y*8 + x*8 - 16;
  62.                     for(var z:int = 0; z < platform.mapsize_z; z++)
  63.                     {
  64.                         if(platform.mapdata[z][x][y] != 0) {
  65.                             buffer.copyPixels(bmp, new Rectangle(32*platform.mapdata[z][x][y], 03240), point);
  66.                         }
  67.                         point.y -= 8;
  68.                     }
  69.                     point.x -= 16;
  70.                 }
  71.             }
  72.             
  73.             buffer.fillRect(new Rectangle(-camera_x, 01465), 0xFFFF00);
  74.             buffer.fillRect(new Rectangle(0, -camera_y, 4651), 0xFFFF00);
  75.             buffer.fillRect(new Rectangle(platform.left-camera_x, 01465), 0x00FFFF);
  76.             buffer.fillRect(new Rectangle(platform.right-camera_x, 01465), 0x00FFFF);
  77.             buffer.fillRect(new Rectangle(0, platform.top-camera_y, 4651), 0x00FFFF);
  78.             buffer.fillRect(new Rectangle(0, platform.bottom-camera_y, 4651), 0x00FFFF);
  79.             buffer.fillRect(new Rectangle((platform.left+platform.right)/2-camera_x, 01465), 0xFF00FF);
  80.             buffer.fillRect(new Rectangle(0, (platform.top+platform.bottom)/2-camera_y, 4651), 0xFF00FF);
  81.             return;
  82.         }
  83.         
  84.         private function onMouseDown(e:MouseEvent):void
  85.         {
  86.             platform.angle++;
  87.         }
  88.     }
  89. }
  90.     import flash.display.*;
  91.     import flash.geom.*;
  92.     
  93.     class Platform
  94.     {
  95.         private var source:MapData = new MapData();
  96.         public var mapdata:Vector.<Vector.<Vector.<int>>>;
  97.         
  98.         private var _angle:int = 0;
  99.         
  100.         public function get mapsize_x():int {return mapdata[0].length;}
  101.         public function get mapsize_y():int {return mapdata[0][0].length;}
  102.         public function get mapsize_z():int {return mapdata.length;}
  103.         
  104.         public function get left():int {return -mapsize_x*16;}
  105.         public function get right():int {return mapsize_y*16;}
  106.         public function get top():int {return -mapsize_z*8-8;}
  107.         public function get bottom():int {return (mapsize_x+mapsize_y)*8+8;}
  108.         
  109.         function Platform()
  110.         {
  111.             update();
  112.         }
  113.         
  114.         public function set angle(value:int):void
  115.         {
  116.             _angle = value & 3;
  117.             update();
  118.         }
  119.         public function get angle():int {return _angle;}
  120.         
  121.         public function update():void
  122.         {
  123.             var x:int, y:int, z:int, size_x:int, size_y:int, chip:int, pos:Point;
  124.             var matrix:Matrix = new Matrix(source.size_x, source.size_y);
  125.             matrix.rotate(Math.PI/2*_angle);
  126.             size_x = Math.round(Math.abs(matrix.a));
  127.             size_y = Math.round(Math.abs(matrix.b));
  128.             
  129.             mapdata = new Vector.<Vector.<Vector.<int>>>(source.size_z, true);
  130.             matrix.identity();
  131.             matrix.translate((-size_x+1) / 2, (-size_y+1) / 2);
  132.             matrix.rotate(Math.PI/2*_angle);
  133.             matrix.translate((source.size_x-1) / 2, (source.size_y-1) / 2);
  134.             
  135.             for(z = 0; z < source.size_z; z++)
  136.             {
  137.                 mapdata[z] = new Vector.<Vector.<int>>(size_x, true);
  138.                 for(x = 0; x < size_x; x++)
  139.                 {
  140.                     mapdata[z][x] = new Vector.<int>(size_y, true);
  141.                     for(y = 0; y < size_y; y++)
  142.                     {
  143.                         pos = matrix.transformPoint(new Point(x, y));
  144.                         chip = source.data[z][Math.round(pos.x)][Math.round(pos.y)];
  145.                         if(chip >= 4 && chip <= 31) {mapdata[z][x][y] = (chip & 0xFFFFFC) + (chip + _angle & 3);}
  146.                         else {mapdata[z][x][y] = chip;}
  147.                     }
  148.                 }
  149.             }
  150.         }
  151.     }
  152.     
  153.     class MapData
  154.     {
  155.         public var data:Vector.<Vector.<Vector.<int>>> = Vector.<Vector.<Vector.<int>>>
  156.         ([
  157.             Vector.<Vector.<int>>([
  158.                 Vector.<int>([ 0000000000000000000000111]),
  159.                 Vector.<int>([ 0000000000000000000000011]),
  160.                 Vector.<int>([ 0000000000000000000000001]),
  161.                 Vector.<int>([ 0000000000000000000000000]),
  162.                 Vector.<int>([ 0000000000000000000000000]),
  163.                 Vector.<int>([ 0000000000000000000000000]),
  164.                 Vector.<int>([ 0000000000000000000000000]),
  165.                 Vector.<int>([ 0000000000000000001500000]),
  166.                 Vector.<int>([ 0000000000000000001000000]),
  167.                 Vector.<int>([ 0011111111111500071000000]),
  168.                 Vector.<int>([ 0010000000000000000000400]),
  169.                 Vector.<int>([ 0010000000000000000000100]),
  170.                 Vector.<int>([ 1111100000444000000011111]),
  171.                 Vector.<int>([ 1,266,27150000111111111111111]),
  172.                 Vector.<int>([ 1507150000111111111111111]),
  173.                 Vector.<int>([ 1,254,24150000111111111111111]),
  174.                 Vector.<int>([ 1111100000000000000011111])
  175.             ]),
  176.             Vector.<Vector.<int>>([
  177.                 Vector.<int>([ 0000000000000000000000011]),
  178.                 Vector.<int>([ 0000000000000000000000001]),
  179.                 Vector.<int>([ 0000000000000000000000000]),
  180.                 Vector.<int>([ 0000000000000000000000000]),
  181.                 Vector.<int>([ 0000000000000000000000000]),
  182.                 Vector.<int>([ 0000000000000000000000000]),
  183.                 Vector.<int>([ 0000000000000000000000000]),
  184.                 Vector.<int>([ 0000000000000000000090000]),
  185.                 Vector.<int>([ 0000000000000011100000000]),
  186.                 Vector.<int>([ 0000000000000011100000800]),
  187.                 Vector.<int>([ 0000000000000011100000000]),
  188.                 Vector.<int>([ 0000000000888000000000000]),
  189.                 Vector.<int>([ 0000000000000000000000000]),
  190.                 Vector.<int>([ 0000009000000000000000000]),
  191.                 Vector.<int>([ 0000009000000000000000000]),
  192.                 Vector.<int>([ 0000009000000000000000000]),
  193.                 Vector.<int>([ 0000000000000000000000000])
  194.             ]),
  195.             Vector.<Vector.<int>>([
  196.                 Vector.<int>([ 0000000000000000000000001]),
  197.                 Vector.<int>([ 0000000000000000000000000]),
  198.                 Vector.<int>([ 0000000000000000000000000]),
  199.                 Vector.<int>([ 0000000000000000000000000]),
  200.                 Vector.<int>([ 0000000000000000000000000]),
  201.                 Vector.<int>([ 0000000000000000000000000]),
  202.                 Vector.<int>([ 0000000000000000000000000]),
  203.                 Vector.<int>([ 0000000000000000000000000]),
  204.                 Vector.<int>([ 0000000000000011100000000]),
  205.                 Vector.<int>([ 0000000000000000000000000]),
  206.                 Vector.<int>([ 0000000000000011100000000]),
  207.                 Vector.<int>([ 0000000000000000000000000]),
  208.                 Vector.<int>([ 0000000000000000000000000]),
  209.                 Vector.<int>([ 0000000000000000000000000]),
  210.                 Vector.<int>([ 0000000000000000000000000]),
  211.                 Vector.<int>([ 0000000000000000000000000]),
  212.                 Vector.<int>([ 0000000000000000000000000])
  213.             ]),
  214.             Vector.<Vector.<int>>([
  215.                 Vector.<int>([ 0000000000001111110000000]),
  216.                 Vector.<int>([ 0000000000001111110000000]),
  217.                 Vector.<int>([ 00000000000011,20,21110000000]),
  218.                 Vector.<int>([ 00000000000011,23,22110000000]),
  219.                 Vector.<int>([ 0000000000001111110000000]),
  220.                 Vector.<int>([ 0000000000001111110000000]),
  221.                 Vector.<int>([ 0000000000001111110000000]),
  222.                 Vector.<int>([ 0000000000000000000005000]),
  223.                 Vector.<int>([ 0000000000000011100000400]),
  224.                 Vector.<int>([ 0000000000000000000000000]),
  225.                 Vector.<int>([ 0000000000444011100000000]),
  226.                 Vector.<int>([ 0000000000000000000000000]),
  227.                 Vector.<int>([ 0000000000000000000000000]),
  228.                 Vector.<int>([ 000000090000000000000,124,130]),
  229.                 Vector.<int>([ 0000000900000000000007050]),
  230.                 Vector.<int>([ 000000090000000000000,156,140]),
  231.                 Vector.<int>([ 0000000000000000000000000])
  232.             ]),
  233.             Vector.<Vector.<int>>([
  234.                 Vector.<int>([ 1111111,28,161001111110000000]),
  235.                 Vector.<int>([ 1111111711001,2044,2110000000]),
  236.                 Vector.<int>([ 1111111,31,191001700510000000]),
  237.                 Vector.<int>([ 0111111111001700510000000]),
  238.                 Vector.<int>([ 0111511111001,2366,2210000000]),
  239.                 Vector.<int>([ 0111111111001111110000000]),
  240.                 Vector.<int>([ 0111111111001111110000000]),
  241.                 Vector.<int>([ 0111111111711111100000100]),
  242.                 Vector.<int>([ 0111110000111011100000000]),
  243.                 Vector.<int>([ 0111110000111010100000000]),
  244.                 Vector.<int>([ 0006000000000011100000000]),
  245.                 Vector.<int>([ 0000000000000000000000000]),
  246.                 Vector.<int>([ 0000000000000000000011111]),
  247.                 Vector.<int>([ 0000000000000007111110001]),
  248.                 Vector.<int>([ 0000000000000007111110001]),
  249.                 Vector.<int>([ 0000000000000007111110001]),
  250.                 Vector.<int>([ 0000000000000000000011111])
  251.             ]),
  252.             Vector.<Vector.<int>>([
  253.                 Vector.<int>([ 100000,28000001111110000000]),
  254.                 Vector.<int>([ 0000007000001000010000000]),
  255.                 Vector.<int>([ 100000,31000001000010000000]),
  256.                 Vector.<int>([ 0000000000001000010000000]),
  257.                 Vector.<int>([ 0000050000001000010000000]),
  258.                 Vector.<int>([ 0000000000001111110000000]),
  259.                 Vector.<int>([ 0100100000000000000000000]),
  260.                 Vector.<int>([ 0000000007000000000000000]),
  261.                 Vector.<int>([ 0000000000000010100000000]),
  262.                 Vector.<int>([ 0100100000000010000000000]),
  263.                 Vector.<int>([ 0000000000000011100000000]),
  264.                 Vector.<int>([ 000,10000000000000000000000]),
  265.                 Vector.<int>([ 0000000000000000000000000]),
  266.                 Vector.<int>([ 00000000900000,110000000000]),
  267.                 Vector.<int>([ 00000000900000,110000000000]),
  268.                 Vector.<int>([ 00000000900000,110000000000]),
  269.                 Vector.<int>([ 0000000000000000000000000])
  270.             ]),
  271.             Vector.<Vector.<int>>([
  272.                 Vector.<int>([ 10000,280000000000000000000]),
  273.                 Vector.<int>([ 0000070000000000000000000]),
  274.                 Vector.<int>([ 10000,310000000000000000000]),
  275.                 Vector.<int>([ 0000000000000000000000000]),
  276.                 Vector.<int>([ 0000005000000000000000000]),
  277.                 Vector.<int>([ 0000000000000000000000000]),
  278.                 Vector.<int>([ 0100100000000000000000000]),
  279.                 Vector.<int>([ 0000000070000000000000000]),
  280.                 Vector.<int>([ 0000000000000010100000000]),
  281.                 Vector.<int>([ 0100100000000010000000000]),
  282.                 Vector.<int>([ 0000000000000011100000000]),
  283.                 Vector.<int>([ 0000000000000000000000000]),
  284.                 Vector.<int>([ 0000000000000000000000000]),
  285.                 Vector.<int>([ 0000000000000000000000000]),
  286.                 Vector.<int>([ 0000000000000000000000000]),
  287.                 Vector.<int>([ 0000000000000000000000000]),
  288.                 Vector.<int>([ 0000000000000000000000000])
  289.             ]),
  290.             Vector.<Vector.<int>>([
  291.                 Vector.<int>([ 1000,2800000000000000000000]),
  292.                 Vector.<int>([ 0000700000000000000000000]),
  293.                 Vector.<int>([ 1000,3100000000000000000000]),
  294.                 Vector.<int>([ 0000000000000000000000000]),
  295.                 Vector.<int>([ 0000000100000000000000000]),
  296.                 Vector.<int>([ 0000000100000000000000000]),
  297.                 Vector.<int>([ 0100100100000000000000000]),
  298.                 Vector.<int>([ 0000000100000000000000000]),
  299.                 Vector.<int>([ 000000,11100000011100000000]),
  300.                 Vector.<int>([ 0100100000000011100000000]),
  301.                 Vector.<int>([ 0000000000000011100000000]),
  302.                 Vector.<int>([ 0080000000000000000000000]),
  303.                 Vector.<int>([ 0011000000000000000000000]),
  304.                 Vector.<int>([ 0000000005000700000000000]),
  305.                 Vector.<int>([ 0000000005000700000000000]),
  306.                 Vector.<int>([ 0000000005000700000000000]),
  307.                 Vector.<int>([ 0000000000000000000000000])
  308.             ]),
  309.             Vector.<Vector.<int>>([
  310.                 Vector.<int>([ 100,28000000000000000000000]),
  311.                 Vector.<int>([ 0007000000000000000000000]),
  312.                 Vector.<int>([ 100,31000000000000000000000]),
  313.                 Vector.<int>([ 0000000000000000000000000]),
  314.                 Vector.<int>([ 0000000000000000000000000]),
  315.                 Vector.<int>([ 0000000000000000000000000]),
  316.                 Vector.<int>([ 0100100000000000000000000]),
  317.                 Vector.<int>([ 0000000000000000000000000]),
  318.                 Vector.<int>([ 0000000000000010100000000]),
  319.                 Vector.<int>([ 0100100000000010000000000]),
  320.                 Vector.<int>([ 0000000000000011100000000]),
  321.                 Vector.<int>([ 0000000000000000000000000]),
  322.                 Vector.<int>([ 0000000000000000000000000]),
  323.                 Vector.<int>([ 0000000000111000000000000]),
  324.                 Vector.<int>([ 0000000000111000000000000]),
  325.                 Vector.<int>([ 0000000000111000000000000]),
  326.                 Vector.<int>([ 0000000000000000000000000])
  327.             ]),
  328.             Vector.<Vector.<int>>([
  329.                 Vector.<int>([ 10,280000000000000000000000]),
  330.                 Vector.<int>([ 0070000000000000000000000]),
  331.                 Vector.<int>([ 10,310000000000000000000000]),
  332.                 Vector.<int>([ 0000000000000000000000000]),
  333.                 Vector.<int>([ 0000000000000000000000000]),
  334.                 Vector.<int>([ 0000000000000000000000000]),
  335.                 Vector.<int>([ 0100100000000000000000000]),
  336.                 Vector.<int>([ 0000000000000000000000000]),
  337.                 Vector.<int>([ 00000,110000000010100000000]),
  338.                 Vector.<int>([ 0100100000000010000000000]),
  339.                 Vector.<int>([ 0080000000000011100000000]),
  340.                 Vector.<int>([ 0000000000000000000000000]),
  341.                 Vector.<int>([ 0000000000000000000000000]),
  342.                 Vector.<int>([ 0000000000000000000000000]),
  343.                 Vector.<int>([ 0000000000000000000000000]),
  344.                 Vector.<int>([ 0000000000000000000000000]),
  345.                 Vector.<int>([ 0000000000000000000000000])
  346.             ]),
  347.             Vector.<Vector.<int>>([
  348.                 Vector.<int>([ 1,2800000000000000000000000]),
  349.                 Vector.<int>([ 0700000000000000000000000]),
  350.                 Vector.<int>([ 1,3100000000000000000000000]),
  351.                 Vector.<int>([ 0000000000000000000000000]),
  352.                 Vector.<int>([ 0000000000000000000000000]),
  353.                 Vector.<int>([ 0000000000000000000000000]),
  354.                 Vector.<int>([ 0,1400,1500000000000000000000]),
  355.                 Vector.<int>([ 0000000000000000000000000]),
  356.                 Vector.<int>([ 0000000000000011100000000]),
  357.                 Vector.<int>([ 0,1300,1200000000011100000000]),
  358.                 Vector.<int>([ 0000000000000011100000000]),
  359.                 Vector.<int>([ 0000000000000000000000000]),
  360.                 Vector.<int>([ 0000000000000000000000000]),
  361.                 Vector.<int>([ 0000000000000000000000000]),
  362.                 Vector.<int>([ 0000000000000000000000000]),
  363.                 Vector.<int>([ 0000000000000000000000000]),
  364.                 Vector.<int>([ 0000000000000000000000000])
  365.             ]),
  366.             Vector.<Vector.<int>>([
  367.                 Vector.<int>([28000000000000000000000000]),
  368.                 Vector.<int>([ 7000000000000000000000000]),
  369.                 Vector.<int>([31000000000000000000000000]),
  370.                 Vector.<int>([ 0000000000000000000000000]),
  371.                 Vector.<int>([ 0000000000000000000000000]),
  372.                 Vector.<int>([ 0000000000000000000000000]),
  373.                 Vector.<int>([ 0011000000000000000000000]),
  374.                 Vector.<int>([ 0100100000000000000000000]),
  375.                 Vector.<int>([ 0100100000000010100000000]),
  376.                 Vector.<int>([ 0011000000000000000000000]),
  377.                 Vector.<int>([ 0000000000000010100000000]),
  378.                 Vector.<int>([ 0000000000000000000000000]),
  379.                 Vector.<int>([ 0000000000000000000000000]),
  380.                 Vector.<int>([ 0000000000000000000000000]),
  381.                 Vector.<int>([ 0000000000000000000000000]),
  382.                 Vector.<int>([ 0000000000000000000000000]),
  383.                 Vector.<int>([ 0000000000000000000000000])
  384.             ])
  385.         ]);
  386.         
  387.         public function get size_x():int {return data[0].length;}
  388.         public function get size_y():int {return data[0][0].length;}
  389.         public function get size_z():int {return data.length;}
  390.     }
noswf

愚直にクォータービュー描画(クリックで回転) forked from: 愚直にクォータービュー描画(クリックで回転) [diff(1)]

  1. // forked from nemu90kWw's 愚直にクォータービュー描画(クリックで回転)
  2. package
  3. {
  4.     import flash.display.*;
  5.     import flash.geom.*;
  6.     import flash.events.*;
  7.     import flash.net.*;
  8.     import flash.system.*;
  9.     import net.hires.debug.Stats;
  10.     
  11.     [SWF(width="465", height="465", frameRate="60")]
  12.     public class FlashTest extends Sprite
  13.     {
  14.         private var loader:Loader = new Loader();
  15.         private var bmp:BitmapData;
  16.         
  17.         private var buffer:BitmapData;
  18.         private var screen:Sprite;
  19.         
  20.         private var platform:Platform = new Platform();
  21.         
  22.         function FlashTest()
  23.         {
  24.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
  25.             loader.load(new URLRequest("http://assets.wonderfl.net/images/related_images/b/bd/bd47/bd4784e7b7a42681cfb17ab446517c8899521a8d"), new LoaderContext(true));
  26.         }
  27.         
  28.         private function onLoadComplete(e:Event):void
  29.         {
  30.             loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete);
  31.             
  32.             buffer = new BitmapData(465465false);
  33.             screen = new Sprite();
  34.             screen.graphics.beginBitmapFill(buffer);
  35.             screen.graphics.drawRect(00, buffer.width, buffer.height);
  36.             addChild(screen);
  37.             
  38.             bmp = Bitmap(loader.content).bitmapData;
  39.             
  40.             addChild(new Stats());
  41.             stage.mouseChildren = false;
  42.             stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
  43.             addEventListener(Event.ENTER_FRAME, onEnterFrame);
  44.         }
  45.         
  46.         public var camera_x:int = 216;
  47.         public var camera_y:int = 150;
  48.         
  49.         private function onEnterFrame(e:Event):void
  50.         {
  51.             camera_x = mouseX-465 + (platform.left+platform.right)/2;
  52.             camera_y = mouseY-465 + (platform.top+platform.bottom)/2;
  53.             
  54.             buffer.fillRect(buffer.rect, 0x304060);
  55.             var point:Point = new Point();
  56.             for(var y:int = 0; y < platform.mapsize_y; y++)
  57.             {
  58.                 point.x = -camera_x + y*16 - 16;
  59.                 for(var x:int = 0; x < platform.mapsize_x; x++)
  60.                 {
  61.                     point.y = -camera_y + y*8 + x*8 - 16;
  62.                     for(var z:int = 0; z < platform.mapsize_z; z++)
  63.                     {
  64.                         if(platform.mapdata[z][x][y] != 0) {
  65.                             buffer.copyPixels(bmp, new Rectangle(32*platform.mapdata[z][x][y], 03240), point);
  66.                         }
  67.                         point.y -= 8;
  68.                     }
  69.                     point.x -= 16;
  70.                 }
  71.             }
  72.             
  73.             buffer.fillRect(new Rectangle(-camera_x, 01465), 0xFFFF00);
  74.             buffer.fillRect(new Rectangle(0, -camera_y, 4651), 0xFFFF00);
  75.             buffer.fillRect(new Rectangle(platform.left-camera_x, 01465), 0x00FFFF);
  76.             buffer.fillRect(new Rectangle(platform.right-camera_x, 01465), 0x00FFFF);
  77.             buffer.fillRect(new Rectangle(0, platform.top-camera_y, 4651), 0x00FFFF);
  78.             buffer.fillRect(new Rectangle(0, platform.bottom-camera_y, 4651), 0x00FFFF);
  79.             buffer.fillRect(new Rectangle((platform.left+platform.right)/2-camera_x, 01465), 0xFF00FF);
  80.             buffer.fillRect(new Rectangle(0, (platform.top+platform.bottom)/2-camera_y, 4651), 0xFF00FF);
  81.             return;
  82.         }
  83.         
  84.         private function onMouseDown(e:MouseEvent):void
  85.         {
  86.             platform.angle++;
  87.         }
  88.     }
  89. }
  90.     import flash.display.*;
  91.     import flash.geom.*;
  92.     
  93.     class Platform
  94.     {
  95.         private var source:MapData = new MapData();
  96.         public var mapdata:Vector.<Vector.<Vector.<int>>>;
  97.         
  98.         private var _angle:int = 0;
  99.         
  100.         public function get mapsize_x():int {return mapdata[0].length;}
  101.         public function get mapsize_y():int {return mapdata[0][0].length;}
  102.         public function get mapsize_z():int {return mapdata.length;}
  103.         
  104.         public function get left():int {return -mapsize_x*16;}
  105.         public function get right():int {return mapsize_y*16;}
  106.         public function get top():int {return -mapsize_z*8-8;}
  107.         public function get bottom():int {return (mapsize_x+mapsize_y)*8+8;}
  108.         
  109.         function Platform()
  110.         {
  111.             update();
  112.         }
  113.         
  114.         public function set angle(value:int):void
  115.         {
  116.             _angle = value & 3;
  117.             update();
  118.         }
  119.         public function get angle():int {return _angle;}
  120.         
  121.         public function update():void
  122.         {
  123.             var x:int, y:int, z:int, size_x:int, size_y:int, chip:int, pos:Point;
  124.             var matrix:Matrix = new Matrix(source.size_x, source.size_y);
  125.             matrix.rotate(Math.PI/2*_angle);
  126.             size_x = Math.round(Math.abs(matrix.a));
  127.             size_y = Math.round(Math.abs(matrix.b));
  128.             
  129.             mapdata = new Vector.<Vector.<Vector.<int>>>(source.size_z, true);
  130.             matrix.identity();
  131.             matrix.translate((-size_x+1) / 2, (-size_y+1) / 2);
  132.             matrix.rotate(Math.PI/2*_angle);
  133.             matrix.translate((source.size_x-1) / 2, (source.size_y-1) / 2);
  134.             
  135.             for(z = 0; z < source.size_z; z++)
  136.             {
  137.                 mapdata[z] = new Vector.<Vector.<int>>(size_x, true);
  138.                 for(x = 0; x < size_x; x++)
  139.                 {
  140.                     mapdata[z][x] = new Vector.<int>(size_y, true);
  141.                     for(y = 0; y < size_y; y++)
  142.                     {
  143.                         pos = matrix.transformPoint(new Point(x, y));
  144.                         chip = source.data[z][Math.round(pos.x)][Math.round(pos.y)];
  145.                         if(chip >= 4 && chip <= 31) {mapdata[z][x][y] = (chip & 0xFFFFFC) + (chip + _angle & 3);}
  146.                         else {mapdata[z][x][y] = chip;}
  147.                     }
  148.                 }
  149.             }
  150.         }
  151.     }
  152.     
  153.     class MapData
  154.     {
  155.         public var data:Vector.<Vector.<Vector.<int>>> = Vector.<Vector.<Vector.<int>>>
  156.         ([
  157.             Vector.<Vector.<int>>([
  158.                 Vector.<int>([ 0000000000000000000000111]),
  159.                 Vector.<int>([ 0000000000000000000000011]),
  160.                 Vector.<int>([ 0000000000000000000000001]),
  161.                 Vector.<int>([ 0000000000000000000000000]),
  162.                 Vector.<int>([ 0000000000000000000000000]),
  163.                 Vector.<int>([ 0000000000000000000000000]),
  164.                 Vector.<int>([ 0000000000000000000000000]),
  165.                 Vector.<int>([ 0000000000000000001500000]),
  166.                 Vector.<int>([ 0000000000000000001000000]),
  167.                 Vector.<int>([ 0011111111111500071000000]),
  168.                 Vector.<int>([ 0010000000000000000000400]),
  169.                 Vector.<int>([ 0010000000000000000000100]),
  170.                 Vector.<int>([ 1111100000444000000011111]),
  171.                 Vector.<int>([ 1,266,27150000111111111111111]),
  172.                 Vector.<int>([ 1507150000111111111111111]),
  173.                 Vector.<int>([ 1,254,24150000111111111111111]),
  174.                 Vector.<int>([ 1111100000000000000011111])
  175.             ]),
  176.             Vector.<Vector.<int>>([
  177.                 Vector.<int>([ 0000000000000000000000011]),
  178.                 Vector.<int>([ 0000000000000000000000001]),
  179.                 Vector.<int>([ 0000000000000000000000000]),
  180.                 Vector.<int>([ 0000000000000000000000000]),
  181.                 Vector.<int>([ 0000000000000000000000000]),
  182.                 Vector.<int>([ 0000000000000000000000000]),
  183.                 Vector.<int>([ 0000000000000000000000000]),
  184.                 Vector.<int>([ 0000000000000000000090000]),
  185.                 Vector.<int>([ 0000000000000011100000000]),
  186.                 Vector.<int>([ 0000000000000011100000800]),
  187.                 Vector.<int>([ 0000000000000011100000000]),
  188.                 Vector.<int>([ 0000000000888000000000000]),
  189.                 Vector.<int>([ 0000000000000000000000000]),
  190.                 Vector.<int>([ 0000009000000000000000000]),
  191.                 Vector.<int>([ 0000009000000000000000000]),
  192.                 Vector.<int>([ 0000009000000000000000000]),
  193.                 Vector.<int>([ 0000000000000000000000000])
  194.             ]),
  195.             Vector.<Vector.<int>>([
  196.                 Vector.<int>([ 0000000000000000000000001]),
  197.                 Vector.<int>([ 0000000000000000000000000]),
  198.                 Vector.<int>([ 0000000000000000000000000]),
  199.                 Vector.<int>([ 0000000000000000000000000]),
  200.                 Vector.<int>([ 0000000000000000000000000]),
  201.                 Vector.<int>([ 0000000000000000000000000]),
  202.                 Vector.<int>([ 0000000000000000000000000]),
  203.                 Vector.<int>([ 0000000000000000000000000]),
  204.                 Vector.<int>([ 0000000000000011100000000]),
  205.                 Vector.<int>([ 0000000000000000000000000]),
  206.                 Vector.<int>([ 0000000000000011100000000]),
  207.                 Vector.<int>([ 0000000000000000000000000]),
  208.                 Vector.<int>([ 0000000000000000000000000]),
  209.                 Vector.<int>([ 0000000000000000000000000]),
  210.                 Vector.<int>([ 0000000000000000000000000]),
  211.                 Vector.<int>([ 0000000000000000000000000]),
  212.                 Vector.<int>([ 0000000000000000000000000])
  213.             ]),
  214.             Vector.<Vector.<int>>([
  215.                 Vector.<int>([ 0000000000001111110000000]),
  216.                 Vector.<int>([ 0000000000001111110000000]),
  217.                 Vector.<int>([ 00000000000011,20,21110000000]),
  218.                 Vector.<int>([ 00000000000011,23,22110000000]),
  219.                 Vector.<int>([ 0000000000001111110000000]),
  220.                 Vector.<int>([ 0000000000001111110000000]),
  221.                 Vector.<int>([ 0000000000001111110000000]),
  222.                 Vector.<int>([ 0000000000000000000005000]),
  223.                 Vector.<int>([ 0000000000000011100000400]),
  224.                 Vector.<int>([ 0000000000000000000000000]),
  225.                 Vector.<int>([ 0000000000444011100000000]),
  226.                 Vector.<int>([ 0000000000000000000000000]),
  227.                 Vector.<int>([ 0000000000000000000000000]),
  228.                 Vector.<int>([ 000000090000000000000,124,130]),
  229.                 Vector.<int>([ 0000000900000000000007050]),
  230.                 Vector.<int>([ 000000090000000000000,156,140]),
  231.                 Vector.<int>([ 0000000000000000000000000])
  232.             ]),
  233.             Vector.<Vector.<int>>([
  234.                 Vector.<int>([ 1111111,28,161001111110000000]),
  235.                 Vector.<int>([ 1111111711001,2044,2110000000]),
  236.                 Vector.<int>([ 1111111,31,191001700510000000]),
  237.                 Vector.<int>([ 0111111111001700510000000]),
  238.                 Vector.<int>([ 0111511111001,2366,2210000000]),
  239.                 Vector.<int>([ 0111111111001111110000000]),
  240.                 Vector.<int>([ 0111111111001111110000000]),
  241.                 Vector.<int>([ 0111111111711111100000100]),
  242.                 Vector.<int>([ 0111110000111011100000000]),
  243.                 Vector.<int>([ 0111110000111010100000000]),
  244.                 Vector.<int>([ 0006000000000011100000000]),
  245.                 Vector.<int>([ 0000000000000000000000000]),
  246.                 Vector.<int>([ 0000000000000000000011111]),
  247.                 Vector.<int>([ 0000000000000007111110001]),
  248.                 Vector.<int>([ 0000000000000007111110001]),
  249.                 Vector.<int>([ 0000000000000007111110001]),
  250.                 Vector.<int>([ 0000000000000000000011111])
  251.             ]),
  252.             Vector.<Vector.<int>>([
  253.                 Vector.<int>([ 100000,28000001111110000000]),
  254.                 Vector.<int>([ 0000007000001000010000000]),
  255.                 Vector.<int>([ 100000,31000001000010000000]),
  256.                 Vector.<int>([ 0000000000001000010000000]),
  257.                 Vector.<int>([ 0000050000001000010000000]),
  258.                 Vector.<int>([ 0000000000001111110000000]),
  259.                 Vector.<int>([ 0100100000000000000000000]),
  260.                 Vector.<int>([ 0000000007000000000000000]),
  261.                 Vector.<int>([ 0000000000000010100000000]),
  262.                 Vector.<int>([ 0100100000000010000000000]),
  263.                 Vector.<int>([ 0000000000000011100000000]),
  264.                 Vector.<int>([ 000,10000000000000000000000]),
  265.                 Vector.<int>([ 0000000000000000000000000]),
  266.                 Vector.<int>([ 00000000900000,110000000000]),
  267.                 Vector.<int>([ 00000000900000,110000000000]),
  268.                 Vector.<int>([ 00000000900000,110000000000]),
  269.                 Vector.<int>([ 0000000000000000000000000])
  270.             ]),
  271.             Vector.<Vector.<int>>([
  272.                 Vector.<int>([ 10000,280000000000000000000]),
  273.                 Vector.<int>([ 0000070000000000000000000]),
  274.                 Vector.<int>([ 10000,310000000000000000000]),
  275.                 Vector.<int>([ 0000000000000000000000000]),
  276.                 Vector.<int>([ 0000005000000000000000000]),
  277.                 Vector.<int>([ 0000000000000000000000000]),
  278.                 Vector.<int>([ 0100100000000000000000000]),
  279.                 Vector.<int>([ 0000000070000000000000000]),
  280.                 Vector.<int>([ 0000000000000010100000000]),
  281.                 Vector.<int>([ 0100100000000010000000000]),
  282.                 Vector.<int>([ 0000000000000011100000000]),
  283.                 Vector.<int>([ 0000000000000000000000000]),
  284.                 Vector.<int>([ 0000000000000000000000000]),
  285.                 Vector.<int>([ 0000000000000000000000000]),
  286.                 Vector.<int>([ 0000000000000000000000000]),
  287.                 Vector.<int>([ 0000000000000000000000000]),
  288.                 Vector.<int>([ 0000000000000000000000000])
  289.             ]),
  290.             Vector.<Vector.<int>>([
  291.                 Vector.<int>([ 1000,2800000000000000000000]),
  292.                 Vector.<int>([ 0000700000000000000000000]),
  293.                 Vector.<int>([ 1000,3100000000000000000000]),
  294.                 Vector.<int>([ 0000000000000000000000000]),
  295.                 Vector.<int>([ 0000000100000000000000000]),
  296.                 Vector.<int>([ 0000000100000000000000000]),
  297.                 Vector.<int>([ 0100100100000000000000000]),
  298.                 Vector.<int>([ 0000000100000000000000000]),
  299.                 Vector.<int>([ 000000,11100000011100000000]),
  300.                 Vector.<int>([ 0100100000000011100000000]),
  301.                 Vector.<int>([ 0000000000000011100000000]),
  302.                 Vector.<int>([ 0080000000000000000000000]),
  303.                 Vector.<int>([ 0011000000000000000000000]),
  304.                 Vector.<int>([ 0000000005000700000000000]),
  305.                 Vector.<int>([ 0000000005000700000000000]),
  306.                 Vector.<int>([ 0000000005000700000000000]),
  307.                 Vector.<int>([ 0000000000000000000000000])
  308.             ]),
  309.             Vector.<Vector.<int>>([
  310.                 Vector.<int>([ 100,28000000000000000000000]),
  311.                 Vector.<int>([ 0007000000000000000000000]),
  312.                 Vector.<int>([ 100,31000000000000000000000]),
  313.                 Vector.<int>([ 0000000000000000000000000]),
  314.                 Vector.<int>([ 0000000000000000000000000]),
  315.                 Vector.<int>([ 0000000000000000000000000]),
  316.                 Vector.<int>([ 0100100000000000000000000]),
  317.                 Vector.<int>([ 0000000000000000000000000]),
  318.                 Vector.<int>([ 0000000000000010100000000]),
  319.                 Vector.<int>([ 0100100000000010000000000]),
  320.                 Vector.<int>([ 0000000000000011100000000]),
  321.                 Vector.<int>([ 0000000000000000000000000]),
  322.                 Vector.<int>([ 0000000000000000000000000]),
  323.                 Vector.<int>([ 0000000000111000000000000]),
  324.                 Vector.<int>([ 0000000000111000000000000]),
  325.                 Vector.<int>([ 0000000000111000000000000]),
  326.                 Vector.<int>([ 0000000000000000000000000])
  327.             ]),
  328.             Vector.<Vector.<int>>([
  329.                 Vector.<int>([ 10,280000000000000000000000]),
  330.                 Vector.<int>([ 0070000000000000000000000]),
  331.                 Vector.<int>([ 10,310000000000000000000000]),
  332.                 Vector.<int>([ 0000000000000000000000000]),
  333.                 Vector.<int>([ 0000000000000000000000000]),
  334.                 Vector.<int>([ 0000000000000000000000000]),
  335.                 Vector.<int>([ 0100100000000000000000000]),
  336.                 Vector.<int>([ 0000000000000000000000000]),
  337.                 Vector.<int>([ 00000,110000000010100000000]),
  338.                 Vector.<int>([ 0100100000000010000000000]),
  339.                 Vector.<int>([ 0080000000000011100000000]),
  340.                 Vector.<int>([ 0000000000000000000000000]),
  341.                 Vector.<int>([ 0000000000000000000000000]),
  342.                 Vector.<int>([ 0000000000000000000000000]),
  343.                 Vector.<int>([ 0000000000000000000000000]),
  344.                 Vector.<int>([ 0000000000000000000000000]),
  345.                 Vector.<int>([ 0000000000000000000000000])
  346.             ]),
  347.             Vector.<Vector.<int>>([
  348.                 Vector.<int>([ 1,2800000000000000000000000]),
  349.                 Vector.<int>([ 0700000000000000000000000]),
  350.                 Vector.<int>([ 1,3100000000000000000000000]),
  351.                 Vector.<int>([ 0000000000000000000000000]),
  352.                 Vector.<int>([ 0000000000000000000000000]),
  353.                 Vector.<int>([ 0000000000000000000000000]),
  354.                 Vector.<int>([ 0,1400,1500000000000000000000]),
  355.                 Vector.<int>([ 0000000000000000000000000]),
  356.                 Vector.<int>([ 0000000000000011100000000]),
  357.                 Vector.<int>([ 0,130