我对 Xna 很陌生,我想加载和读取 XML 文件。在互联网上搜索了几个小时后,我仍然没有得到它没有加载文件。每当我尝试启动它时,都会出现 (DirectoryNotFoundException),而当我尝试将其复制到调试目录时,则会出现 (NullReferenceException)
下载:http ://www.mediafire.com/?z6w36b73cufy3co
加载方法:(代码中有第二个,但我还是会上传整个项目)
private void InitLevel(int levelNum)
{
actlevel = levelNum;
levelData = (from level in XElement.Load("Data\\Levels.xml").Descendants("Level")
where (int)level.Attribute("Number") == levelNum
select new LevelData
{
number = levelNum,
changeDirChance = (int)level.Attribute("ChangeDirChance"),
maxActiveAliens = (int)level.Attribute("MaxActiveAliens"),
totalAliensToFinish = (int)level.Attribute("TotalAliensToFinish"),
boss = alienTypes[(string)level.Attribute("Boss")],
fireChance = (int)level.Attribute("FireChance"),
maxAlienBullets = (int)level.Attribute("MaxAlienBullets"),
alienGenerationTime = TimeSpan.FromMilliseconds((int)level.Attribute("AlienGenerationTime")),
selectionData = (from sel in level.Descendants("AlienType")
select new AlienSelectionData
{
chance = (int)sel.Attribute("Chance"),
alien = alienTypes[(string)sel.Attribute("Name")]
}).ToList()
}).SingleOrDefault();
Debug.Assert(levelData != null);
}
和 XML 文件(/Data 中的 Levels.xml):
<?xml version="1.0" encoding="utf-8" ?>
<Levels>
<Level Number="1" MaxActiveAliens="7" TotalAliensToFinish="15" Boss="boss1"
AlienGenerationTime="800" ChangeDirChance="2" FireChance="2" MaxAlienBullets="5">
<AlienTypes>
<AlienType Name="alien1" Chance="25" />
<AlienType Name="alien2" Chance="20" />
<AlienType Name="alien3" Chance="20" />
<AlienType Name="alien4" Chance="5" />
</AlienTypes>
</Level>
<Level Number="2" MaxActiveAliens="10" TotalAliensToFinish="25" Boss="boss2"
AlienGenerationTime="600" ChangeDirChance="2" FireChance="3" MaxAlienBullets="7">
<AlienTypes>
<AlienType Name="alien1" Chance="20" />
<AlienType Name="alien2" Chance="20" />
<AlienType Name="alien3" Chance="20" />
<AlienType Name="alien4" Chance="15" />
<AlienType Name="alien5" Chance="10" />
</AlienTypes>
</Level>
</Levels>