Как повернуть изометрический вид? - PullRequest
1 голос
/ 17 августа 2010

Я создаю вид изометрических плиток, используя этот простой вложенный цикл:

const TILE_WIDTH:Number = 180;
const TILE_HEIGHT:Number = 90;

for( var i:Number = 0; i < 10; i++ ){
    for( var j:Number = 0; j < 10; j++ ){
        var tile:MovieClip = new TileMC(); // a movieclip in the library...
        //  with a different tile & label on each frame
        tile.x = ( TILE_WIDTH  / 2 ) * ( j - i );
        tile.y = ( TILE_HEIGHT / 2 ) * ( j + i );
        tile.gotoAndStop( mapTileLabelsAr[j][i] ); // a 2d array of strings
        addChild( tile );
     }
}

Это хорошо расставляет плитки, но мне нужно поворачивать карту с интервалами в 90 градусов. Мне не нужно перемещать какие-либо позиции плиток по x, y (как это могло бы испортить сортировку по глубине), а просто выбрать другой кадр, используя 2d массив строк меток. Как мне этого добиться?

1 Ответ

1 голос
/ 17 августа 2010

Проверьте этот пост о вращении 2d массива, который вы можете применить к вашему mapTileLabelsAr массиву.

Это только для одного поворота на 90 градусов по часовой стрелке, но показывает, какиндексы преобразуются, чтобы помочь вам разработать алгоритм для ваших нужд.Вы также можете просто передать повернутый результат обратно для других вращений.

...