当前位置: 首页>>代码示例>>C#>>正文


C# TileMap.SetRawTile方法代码示例

本文整理汇总了C#中TileMap.SetRawTile方法的典型用法代码示例。如果您正苦于以下问题:C# TileMap.SetRawTile方法的具体用法?C# TileMap.SetRawTile怎么用?C# TileMap.SetRawTile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TileMap的用法示例。


在下文中一共展示了TileMap.SetRawTile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: LoadJson

    public static TileMap LoadJson( string _fileName )
    {
        string jsonString = System.IO.File.ReadAllText( _fileName );
        Dictionary<string,object> json = (Dictionary<string,object>)MiniJSON.Json.Deserialize( jsonString );

        // Load tile bank
        List<object> tilesetsJson = (List<object>)json[ "tilesets" ];
        Dictionary<string,object> tilesetJson = (Dictionary<string,object>)tilesetsJson[ 0 ];
        string imageFileName = (string)tilesetJson[ "image" ];
        string imageFullPath = System.IO.Path.GetDirectoryName( _fileName ) + System.IO.Path.DirectorySeparatorChar + imageFileName;
        //LoadBMP( imageFullPath );

        PalettizedImageConfig imageConfig  = new PalettizedImageConfig( imageFullPath + ".config" );

        PalettizedImage imageData = PalettizedImage.LoadImage( imageFullPath, imageConfig );
        TileBank tileBank = null;
        if( imageData != null )
        {
            //
            imageConfig.SetImage( imageData );

            bool optimizeBank = (imageConfig.m_importAsSprite==false);	// Optimize bank when we're not loading the image as a sprite (i.e. optimize when we're loading as a tile bank)
            tileBank = new TileBank( imageData, optimizeBank );
        }

        // Create map texture
        int map_tiles_w = ((int)(long)json[ "width" ]);
        int map_tiles_h = ((int)(long)json[ "height" ]);
        int map_pixels_w = map_tiles_w * 8;
        int map_pixels_h = map_tiles_h * 8;

        TileMap ret = new TileMap( map_tiles_w, map_tiles_h );

        // Find each layer
        List<object> layersJson = (List<object>)json[ "layers" ];
        Dictionary<string,object> layerJson = (Dictionary<string,object>)layersJson[ 0 ];
        List<object> layerData = (List<object>)layerJson[ "data" ];
        int tile_x, tile_y;
        for( tile_y=0; tile_y<map_tiles_h; tile_y++ )
        {
            for( tile_x=0; tile_x<map_tiles_w; tile_x++ )
            {
                int i = tile_y*map_tiles_w + tile_x;
                int tile_id = (int)(long)layerData[i];
                tile_id--;
                TileInstance tileInstance = tileBank.m_allTileInstances[ tile_id ];

                //
                ret.SetRawTile( tile_x, tile_y, tile_id );
                ret.SetTile( tile_x, tile_y, tileInstance );
            }
        }

        return ret;
    }
开发者ID:MagnusRunesson,项目名称:TinyDataTool,代码行数:55,代码来源:TileMap.cs


注:本文中的TileMap.SetRawTile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。