コード例 #1
0
        /// <summary>
        /// Metoda pro ulozeni mapy
        /// </summary>
        public static void SaveMap()
        {
            Session.MapData = new MapSerialize();
            Session.MapData.keys = Session.Keys;
            Session.MapData.units = Session.Units;
            Session.MapData.mapProps = Session.MapProps;
            Session.MapData.backLayer = BackMap.mapLayers[0];
            Session.MapData.backSplatter = BackMap.mapLayers[1];
            Session.MapData.frontLayer = FrontMap.mapLayers[0];
            Session.MapData.frontSplatter = FrontMap.mapLayers[1];

            try
            {
                Serializer ser = new Serializer();
                ser.SerializeMap("map.xml", Session.MapData);
            }
            catch (Exception ex)
            {
                string message = ex.Message;

            }
        }
コード例 #2
0
        /// <summary>
        /// Metoda pro nahrani vsech map a textur a vsech defaultnich veci
        /// </summary>
        /// <param name="mapName"></param>
        public static void LoadMapAndTextures(string mapName)
        {
            //Nahrani mapy
            #region Tile Sets
            font = GameRef.Content.Load<SpriteFont>(@"Fonts\editorFont");

            Texture2D tilesetTexture = GameRef.Content.Load<Texture2D>(@"Tiles\walkable");
            tilesetTexture.Name = "Walkable";
            Tileset tileset1 = new Tileset(tilesetTexture, 10, 10, 32, 32);
            tilesetTexture = GameRef.Content.Load<Texture2D>(@"Tiles\tileset2");
            tilesetTexture.Name = "tileset2";
            Tileset tileset2 = new Tileset(tilesetTexture, 10, 10, 32, 32);
            List<Tileset> tilesets = new List<Tileset>();
            tilesets.Add(tileset1);
            tilesets.Add(tileset2);

            Texture2D pathSetText = GameRef.Content.Load<Texture2D>(@"Tiles\pathSet");
            pathSetText.Name = "pathSet";
            Tileset pathSet = new Tileset(pathSetText, 5, 5, 32, 32);
            tilesets.Add(pathSet);

            charTexture = GameRef.Content.Load<Texture2D>(@"Sprites\characterSet");
            keyTexture = GameRef.Content.Load<Texture2D>(@"Sprites\keySet");

            #endregion

            Serializer ser = new Serializer();
            MapSerialize ob = ser.DeSerializeMap(mapName);
            Session.MapProps = ob.mapProps;

            #region Back Map

            List<MapLayer> backlayers = new List<MapLayer>();
            backlayers.Add(ob.backLayer);
            backlayers.Add(ob.backSplatter);
            Session.BackMap = new TileMap(tilesets, backlayers, Session.MapProps.BackSizeX, Session.MapProps.BackSizeY, Session.MapProps.BackEngineX, Session.MapProps.BackEngineY);

            #endregion

            #region FrontMap

            List<MapLayer> frontlayers = new List<MapLayer>();
            frontlayers.Add(ob.frontLayer);
            frontlayers.Add(ob.frontSplatter);
            Session.FrontMap = new TileMap(tilesets, frontlayers, Session.MapProps.FrontSizeX, Session.MapProps.FrontSizeY, Session.MapProps.FrontEngineX, Session.MapProps.FrontEngineY);

            #endregion

            Session.FrontMap.mapLayers[0].map[25, 7].obj = 1;
            Session.FrontMap.mapLayers[0].map[17, 25].obj = 2;
            Session.FrontMap.mapLayers[0].map[12, 31].obj = 3;
            Session.FrontMap.mapLayers[0].map[26, 34].obj = 4;
            Session.FrontMap.mapLayers[0].map[49, 17].obj = "The End";

            LoadBases();

            Units = new List<Unit>();
            foreach (Unit item in ob.units)
            {
                Units.Add(baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y));
            }

            Keys = new List<GameKey>();
            foreach (GameKey item in ob.keys)
            {
                Keys.Add(baseKeys[item.index].Clone(item.Cell.X, item.Cell.Y));
            }
        }
コード例 #3
0
        /// <summary>
        /// Metoda slouzici pro ulozeni hry
        /// </summary>
        /// <param name="gamename"></param>
        public static void SaveGame(string gamename)
        {
            Session.GameData = new GameSerialize();
            Session.GameData.mapName = "map.xml";
            Session.GameData.hero = Session.CurrentHero;
            Session.GameData.cam = Session.Camera;
            Session.GameData.keys = Session.Keys;
            Session.GameData.units = Session.Units;
            Session.GameData.frontSplatter = Session.FrontMap.mapLayers[1];

            try
            {
                Serializer ser = new Serializer();
                ser.SerializeGame(gamename, Session.GameData);
            }
            catch (Exception ex)
            {
                string message = ex.Message;

            }
        }
コード例 #4
0
        /// <summary>
        /// Metoda slouzici pro nahrani hry
        /// </summary>
        /// <param name="gamename"></param>
        public static void LoadGame(string gamename)
        {
            GameSerialize ob = new GameSerialize();
            try
            {
                Serializer ser = new Serializer();
                ob = ser.DeSerializeGame(gamename);
                LoadMapAndTextures(ob.mapName);
                LoadHeroSprite(ob.hero.Gender);

                //Overrides Units loaded from MapSerialize
                Units = new List<Unit>();
                foreach (Unit item in ob.units)
                {
                    Unit klon = baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y);
                    Session.FrontMap.GetTile(item.Cell).obj = klon;
                    Units.Add(klon);
                }

                //Overrides Keys loaded from MapSerialize
                Keys = new List<GameKey>();
                foreach (GameKey item in ob.keys)
                {
                    GameKey klon = baseKeys[item.index].Clone(item.Cell.X, item.Cell.Y);
                    Session.FrontMap.GetTile(item.Cell).obj = klon;
                    Keys.Add(klon);
                }

                MapLayer frontPath = new MapLayer(Session.MapProps.FrontSizeX, Session.MapProps.FrontSizeY);
                for (int y = 0; y < frontPath.Height; y++)
                {
                    for (int x = 0; x < frontPath.Width; x++)
                    {
                        Tile tile = new Tile(-1, -1, y, x);
                        frontPath.SetTile(x, y, tile);
                    }
                }
                Session.FrontMap.mapLayers.Add(frontPath);

                Session.CurrentHero = new Hero(ob.hero, playerSpriteHero);
                Session.CurrentHero.units = new List<Unit>();
                foreach (Unit item in ob.hero.units)
                {
                    Session.CurrentHero.units.Add(baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y, item.Attack, item.Defense, item.HitPoints, item.isInHero));
                }
                Session.Camera = ob.cam;
                Session.FrontMap.mapLayers[1] = ob.frontSplatter;
            }
            catch (Exception ex)
            {
                string message = ex.Message;

            }
        }