1

この単純なネストされたループを使用して、アイソメタイルのビューを作成しています。

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配列を使用して別のフレームを選択するだけです。どうすればそれを達成できますか?

4

1 に答える 1

1

アレイに適用できる2Dアレイの回転に関するこの投稿を確認してくださいmapTileLabelsAr

これは、90度のCW回転を1回だけ行う場合ですが、ニーズに合ったアルゴリズムを作成するためにインデックスがどのように変換されるかを示しています。回転した結果を他の回転にフィードバックすることもできます。

于 2010-08-17T19:27:13.757 に答える