TmxMap level = new TmxMap("Level/TMX/level1.tmx"); public Texture2D tileset; public int tileWidth; // Valeur Récupéré grace a TMXlevel public int tileHeight; // Valeur Récupéré grace a TMXlevel public int tilesetTilesWide; public int tilesetTilesHigh; public int[,] Tiles; public string[] TilesTypes = new string[1180]; public void Load() { System.Diagnostics.Debug.WriteLine("Début d'affectation des Tiles..."); var version = level.Version; var myTileset = level.Tilesets["tileset_mario"]; var myLayer = level.Layers[0]; System.Diagnostics.Debug.WriteLine("Récupérations des tailles des Tile..."); tileWidth = level.Tilesets[0].TileWidth; tileHeight = level.Tilesets[0].TileHeight; System.Diagnostics.Debug.WriteLine("Récupérations des tailles HD des Tile..."); tilesetTilesWide = tileset.Width / tileWidth; tilesetTilesHigh = tileset.Height / tileHeight; System.Diagnostics.Debug.WriteLine("Début d'affectation des Tiles terminées..."); //setTileCoord(); } public void Draw(GameTime gameTime, SpriteBatch spriteBatch) { for (var i = 0; i < level.Layers[0].Tiles.Count; i++) //on compte le nombre de Tiles est nécessaire pour faire la level. { int gid = level.Layers[0].Tiles[i].Gid; // On récupere l'id de la Tile. if (gid == 0) { //Si l'id de la tile est 0 alors on affiche un "trou" } else { int tileFrame = gid - 1; int column = tileFrame % tilesetTilesWide; int row = (int)Math.Floor((double)tileFrame / (double)tilesetTilesWide); float x = (i % level.Width) * level.TileWidth; // On calcule les coordonnées de positionnement de la tile float y = (float)Math.Floor(i / (double)level.Width) * level.TileHeight; // On calcule les coordonnées de positionnement de la tile Rectangle tilesetRec = new Rectangle(tileWidth * column, tileHeight * row, tileWidth, tileHeight); // On récupere la Tile d'origine spriteBatch.Draw(tileset, new Rectangle((int)x, (int)y, tileWidth, tileHeight), tilesetRec, Color.White); // On dessine la Tile } } }