コード例 #1
0
        private static void SaveScnx(TmxToScnxCommandLineArgs parsedArgs, TiledMapSave tms)
        {
            Console.WriteLine("Saving \"{0}\".", parsedArgs.DestinationFile);

            SceneSave spriteEditorScene = tms.ToSceneSave(parsedArgs.Scale);

            spriteEditorScene.FileName = parsedArgs.DestinationFile;
            spriteEditorScene.ScenePath = FileManager.GetDirectory(parsedArgs.DestinationFile);
            spriteEditorScene.AssetsRelativeToSceneFile = true;
            var result = spriteEditorScene.GetMissingFiles();
            foreach (var missing in result)
            {
                Console.Error.WriteLine("Missing file: " + spriteEditorScene.ScenePath + missing);
            }
            spriteEditorScene.Save(parsedArgs.DestinationFile.Trim());
        }
コード例 #2
0
        public void ToSceneSaveOrthogonalTest()
        {
            TiledMapSave.Offset = new Tuple<float, float, float>(0f, 0f, 0f);
            var target = new TiledMapSave()
                {
                    height = 64,
                    width = 64,
                    tileheight = 32,
                    tilewidth = 32,
                    tileset = new List<mapTileset>()
                        {
                            new mapTileset
                                {
                                    Firstgid = 1,
                                    Image = new mapTilesetImage[]
                                        {
                                            new mapTilesetImage
                                                {
                                                    height = 64,
                                                    width = 64,
                                                    source =
                                                        "../../../../../Program Files (x86)/Tiled/examples/tmw_desert_spacing.png"
                                                }
                                        },
                                    Name = "tileset1",
                                    Tiles = new List<mapTilesetTile>
                                        {
                                            new mapTilesetTile
                                                {
                                                    id = 0,
                                                    properties = new List<property>
                                                        {
                                                            new property
                                                                {
                                                                    name = "name",
                                                                    value = "tile1"
                                                                }
                                                        }
                                                },
                                            new mapTilesetTile
                                                {
                                                    id = 1,
                                                    properties = new List<property>
                                                        {
                                                            new property
                                                                {
                                                                    name = "name",
                                                                    value = "tile2"
                                                                }
                                                        }
                                                },
                                            new mapTilesetTile
                                                {
                                                    id = 2,
                                                    properties = new List<property>
                                                        {
                                                            new property
                                                                {
                                                                    name = "name",
                                                                    value = "tile3"
                                                                }
                                                        }
                                                },
                                                new mapTilesetTile
                                                {
                                                    id = 3,
                                                    properties = new List<property>
                                                        {
                                                            new property
                                                                {
                                                                    name = "name",
                                                                    value = "tile4"
                                                                }
                                                        }
                                                }

                                        },
                                    Tileheight = 32,
                                    Tilewidth = 32
                                }
                        },
                    Layers = new List<MapLayer>()
                        {
                            new MapLayer
                                {
                                    Name = "layer1",
                                    data = new mapLayerData[]
                                        {
                                            new mapLayerData()
                                                {
                                                    dataTiles = new mapLayerDataTile[]
                                                        {
                                                            new mapLayerDataTile
                                                                {
                                                                    gid = "1"
                                                                },
                                                            new mapLayerDataTile
                                                                {
                                                                    gid = "3"
                                                                },
                                                            new mapLayerDataTile
                                                                {
                                                                    gid = "4"
                                                                },
                                                            new mapLayerDataTile
                                                                {
                                                                    gid = "2"
                                                                },
                                                        }
                                                }
                                        }
                                }
                        },
                    orientation = "orthogonal"
                };
            const float scale = 1F;
            SceneSave actual = target.ToSceneSave(scale);

            Assert.AreEqual(4, actual.SpriteList.Count);

            var tile = actual.SpriteList.SingleOrDefault(s => s.Name == "tile1");
            Assert.IsNotNull(tile);
            Assert.AreEqual(16f, tile.X);
            Assert.AreEqual(-16, tile.Y);

            tile = actual.SpriteList.SingleOrDefault(s => s.Name == "tile2");
            Assert.IsNotNull(tile);
            Assert.AreEqual(112f, tile.X);
            Assert.AreEqual(-16f, tile.Y);

            tile = actual.SpriteList.SingleOrDefault(s => s.Name == "tile3");
            Assert.IsNotNull(tile);
            Assert.AreEqual(48f, tile.X);
            Assert.AreEqual(-16f, tile.Y);

            tile = actual.SpriteList.SingleOrDefault(s => s.Name == "tile4");
            Assert.IsNotNull(tile);
            Assert.AreEqual(80f, tile.X);
            Assert.AreEqual(-16f, tile.Y);
        }