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); }