public void LoadLevel(string levelName) { document.Load("Level/" + levelName + ".tmx"); XmlNode data = document.SelectSingleNode("//data"); if (data == null) { throw new FileNotFoundException(); } else { DataManager dataManager = DataManager.GetInstance(); TileFactory tileFactory = new TileFactory(); string levelData = data.InnerText; int count = 0; for (int i = 0; i < 1024; i++) { for (int j = 0; j < 1024; j++) { string singleValue = ""; while (count < levelData.Length && levelData[count] != ',') { singleValue += levelData[count]; count++; } count++; int singleValueInt = int.Parse(singleValue); TileFactory.TileType tileType = TileFactory.TileType.nothing; if (singleValueInt > 0 && singleValueInt < 17) { tileType = TileFactory.TileType.wall; } dataManager.TileManager.AddTile(tileFactory.CreateTile(tileType, singleValueInt), new Vector2D(j, i)); } } } }
/// <summary> /// Handles the SelectedIndexChanged event of the lbxTilesType control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void lbxTilesType_SelectedIndexChanged(object sender, EventArgs e) { switch (view.lbxTilesType.SelectedIndex) { case 0: view.pcbPreview.ImageLocation = TileImages.emptyTile; selectedType = TileFactory.TileType.emptyTile; break; case 1: view.pcbPreview.ImageLocation = TileImages.emptyFloor; selectedType = TileFactory.TileType.emptyFloor; break; case 2: view.pcbPreview.ImageLocation = TileImages.notAccesibleBlock; selectedType = TileFactory.TileType.unaccessibleBlock; break; case 3: view.pcbPreview.ImageLocation = TileImages.accesibleBlock; selectedType = TileFactory.TileType.accessibleBlock; break; case 4: view.pcbPreview.ImageLocation = TileImages.goal; selectedType = TileFactory.TileType.goal; break; case 5: view.pcbPreview.ImageLocation = TileImages.playerSpawn; selectedType = TileFactory.TileType.playerSpawn; break; case 6: view.pcbPreview.ImageLocation = TileImages.bonusSpawn; selectedType = TileFactory.TileType.bonusSpawn; break; case 7: view.pcbPreview.ImageLocation = TileImages.ramp; selectedType = TileFactory.TileType.ramp; break; case 8: view.pcbPreview.ImageLocation = TileImages.endlessHole; selectedType = TileFactory.TileType.endlessHole; break; case 9: view.pcbPreview.ImageLocation = TileImages.teleport; selectedType = TileFactory.TileType.teleport; break; case 10: view.pcbPreview.ImageLocation = TileImages.turret; selectedType = TileFactory.TileType.turret; break; case 11: view.pcbPreview.ImageLocation = TileImages.ball; selectedType = TileFactory.TileType.ball; break; default: view.pcbPreview.ImageLocation = TileImages.emptyTile; selectedType = TileFactory.TileType.emptyTile; break; } }