예제 #1
0
        public MapeditorState()
        {
            Loader.LoadShizzle();
            gridWidth  = 39;
            gridHeight = 22;
            editTileX  = editTileY = 0;
            if (Loader.CheckMap())
            {
                GameWorld = Loader.LoadMap();
            }
            else
            {
                GameWorld = new GameWorld();
                GameWorld.AddGameGrid(new GameGrid(gridWidth, gridHeight, "ground"));
                GameWorld.AddGameGrid(new GameGrid(gridWidth, gridHeight, "walls"));
            }
            GameWorld.AddGameGrid(new GameGrid(gridWidth, gridHeight, "editlayer"));

            for (int x = 0; x < gridWidth; x++)
            {
                for (int y = 0; y < gridHeight; y++)
                {
                    GameWorld.getGameGrid("editlayer").AddTile("temp", x, y);
                }
            }
        }
예제 #2
0
        public static GameWorld LoadMap()
        {
            GameWorld gw = new GameWorld();

            string currentLayer = string.Empty;

            using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/data/map.summerjam"))
            {
                string line = string.Empty;
                while ((line = sr.ReadLine()) != null)
                {
                    if (line.StartsWith("Layer"))
                    {
                        currentLayer = line.Split(' ')[1];
                        gw.AddGameGrid(39, 22, currentLayer);
                    }
                    else
                    {
                        string[] split = line.Split(' ');
                        if (split[2] != "door")
                        {
                            gw.getGameGrid(currentLayer).AddTile(new Tile(split[2], int.Parse(split[0]), int.Parse(split[1]), gw.getGameGrid(currentLayer)), int.Parse(split[0]), int.Parse(split[1]));
                        }
                        else
                        {
                            gw.getGameGrid(currentLayer).AddTile(new Door(split[2], int.Parse(split[0]), int.Parse(split[1]), gw.getGameGrid(currentLayer)), int.Parse(split[0]), int.Parse(split[1]));
                        }
                        if (split.Length > 3)
                        {
                            gw.getGameGrid(currentLayer).Grid[int.Parse(split[0]), int.Parse(split[1])].Rotation = int.Parse(split[3]);
                        }
                    }
                }
            }

            return(gw);
        }