Example #1
0
    void importLevelDesign()
    {
        string filepath = Application.dataPath + @"/levels/Level.xml";

        if (System.IO.File.Exists(filepath))
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(System.IO.File.ReadAllText(filepath));
            foreach (XmlElement screen in xmlDoc.GetElementsByTagName("screen"))
            {
                if (screen.GetAttribute("empty") == "0")
                {
                    int scX = int.Parse(screen.GetAttribute("x"));
                    int scY = int.Parse(screen.GetAttribute("y"));
                    if (screens[scX, scY] == null)
                    {
                        screens[scX, scY] = new ScreenInfos();
                    }
                    foreach (XmlElement color in screen.GetElementsByTagName("color"))
                    {
                        screens[scX, scY].colors[int.Parse(color.GetAttribute("i"))] =
                            new Color(float.Parse(color.GetAttribute("r")), float.Parse(color.GetAttribute("g")), float.Parse(color.GetAttribute("b")));
                    }
                    foreach (XmlElement tile in screen.GetElementsByTagName("tile"))
                    {
                        screens[scX, scY].tiles[int.Parse(tile.GetAttribute("x")), int.Parse(tile.GetAttribute("y")), int.Parse(tile.GetAttribute("l"))] =
                            new TileInfos(int.Parse(tile.GetAttribute("t")), int.Parse(tile.GetAttribute("s")), int.Parse(tile.GetAttribute("r")));
                    }
                }
            }
        }
        updateDisplayedLevel();
    }
Example #2
0
 void storeCurrentScreen()
 {
     if (screens [screenPosX, screenPosY] == null)
     {
         screens [screenPosX, screenPosY] = new ScreenInfos();
     }
     for (int i = 0; i < screens[screenPosX, screenPosY].colors.Length; i++)
     {
         screens[screenPosX, screenPosY].colors[i] = cam.backgroundColor;
     }
     for (int x = 0; x < nbTilesX; x++)
     {
         for (int y = 0; y < nbTilesY; y++)
         {
             for (int l = 0; l < nbLayers; l++)
             {
                 screens[screenPosX, screenPosY].tiles[x, y, l] = tiles[x, y, l].GetComponent <tile>().getTileInfos();
             }
         }
     }
 }
Example #3
0
 void updateDisplayedLevel()
 {
     if (screens [screenPosX, screenPosY] == null)
     {
         screens [screenPosX, screenPosY] = new ScreenInfos();
     }
     cam.backgroundColor = screens [screenPosX, screenPosY].colors[0];
     for (int i = 0; i < gradients.Length; i++)
     {
         gradients[i].GetComponent <gradient>().updateColors();
     }
     for (int x = 0; x < nbTilesX; x++)
     {
         for (int y = 0; y < nbTilesY; y++)
         {
             for (int l = 0; l < nbLayers; l++)
             {
                 TileInfos thisTileInfos = screens[screenPosX, screenPosY].tiles[x, y, l];
                 setTile(x, y, l, thisTileInfos.type, thisTileInfos.shape, thisTileInfos.rotation);
             }
         }
     }
 }