Esempio n. 1
0
        public World()
        {
            //Initialisation
            ImageTile = new ImageTileInfo();
            Tiles     = new TilesInfo();
            Map       = new MapInfo();
            //Extrait les informations sur l'image
            Hashtable section = (Hashtable)ConfigurationManager.GetSection("InformationsTiles");

            ImageTile.Name               = (string)section["fileTilesName"];
            ImageTile.Hauteur            = Convert.ToInt32(section["hauteurFile"]);
            ImageTile.Largeur            = Convert.ToInt32(section["largeurFile"]);
            ImageTile.NbrTilesParLigne   = Convert.ToInt32(section["tilesParLigne"]);
            ImageTile.NbrTilesParColonne = Convert.ToInt32(section["tilesParColonne"]);

            //Extrait les informations sur les tiles
            Tiles.Hauteur = Convert.ToInt32(section["hauteurTiles"]);
            Tiles.Largeur = Convert.ToInt32(section["largeurTiles"]);


            //Extrait les informations sur les propriétés des tiles (mur ou non)
            Tiles.IsMur = new bool[ImageTile.NbrTilesParLigne * ImageTile.NbrTilesParColonne];
            section     = (Hashtable)ConfigurationManager.GetSection("InformationMur");
            for (int tile = 0; tile < ImageTile.NbrTilesParLigne; tile++)
            {
                if ((string)section[tile] == "plein")
                {
                    Tiles.IsMur[tile] = true;
                }
                else
                {
                    Tiles.IsMur[tile] = false;
                }
            }

            //Extrait les informations sur la taille de la map
            section     = (Hashtable)ConfigurationManager.GetSection("InformationsMap");
            Map.Hauteur = Convert.ToInt32(section["hauteur"]);
            Map.Largeur = Convert.ToInt32(section["largeur"]);


            //Extrait les informations sur la disposition de la map et la dessine
            section          = (Hashtable)ConfigurationManager.GetSection("ConfigMap");
            Map.ConstructMap = new Bitmap(Map.Largeur * Tiles.Largeur, Map.Hauteur * Tiles.Hauteur);
            ImageTile.Image  = new Bitmap(@"C:\Users\Gigoto\source\repos\Game1\Game1\Content\" + ImageTile.Name);
            for (int bloc_Hauteur = 0; bloc_Hauteur < Map.Hauteur; bloc_Hauteur++)
            {
                for (int bloc_Largeur = 0; bloc_Largeur < Map.Largeur; bloc_Largeur++)
                {
                    for (int pixel_X = 0; pixel_X < Tiles.Hauteur; pixel_X++)
                    {
                        for (int pixel_Y = 0; pixel_Y < Tiles.Largeur; pixel_Y++)
                        {
                            Map.ConstructMap.SetPixel(bloc_Largeur * Tiles.Largeur + pixel_Y, bloc_Hauteur * Tiles.Hauteur + pixel_X, ImageTile.Image.GetPixel(pixel_Y + Convert.ToInt32(section[$"bloc{bloc_Hauteur * Map.Largeur + bloc_Largeur}"]) * Tiles.Largeur, pixel_X));
                        }
                    }
                }
            }
        }
                public static TilesInfo FromBaseObject(BaseObject baseObj)
                {
                    if (baseObj == null || baseObj.NativeObject == IntPtr.Zero)
                    {
                        return(null);
                    }
                    TilesInfo obj = baseObj as  TilesInfo;

                    if (object.Equals(obj, null))
                    {
                        obj = new TilesInfo(CreatedWhenConstruct.CWC_NotToCreate);
                        obj.BindNativeObject(baseObj.NativeObject, "CTilesInfo");
                        obj.IncreaseCast();
                    }

                    return(obj);
                }
                public BaseObject Create()
                {
                    TilesInfo emptyInstance = new TilesInfo(CreatedWhenConstruct.CWC_NotToCreate);

                    return(emptyInstance);
                }