XNA 使用XML读取自定义类型

最近很忙,仍然在赶工Art of Destiny

OK,根据大地无敌的心得,大地无敌就来介绍如何在XNA中使用内容管道读取XML自定义类型数据了
就让大地无敌来做一个示例解决方案来讲解吧!
大地无敌要使用XML文件来记录一种游戏内的角色(比如一位主角、一种相同的会出现多次的敌人之类的)

 

最近很忙,仍然在赶工Art of Destiny

OK,根据大地无敌的心得,大地无敌就来介绍如何在XNA中使用内容管道读取XML自定义类型数据了
就让大地无敌来做一个示例解决方案来讲解吧!
大地无敌要使用XML文件来记录一种游戏内的角色(比如一位主角、一种相同的会出现多次的敌人之类的)

 

1、新建一个Game主程序项目,名字就叫LandGame好了。

2、新建一个Library项目如图,叫做LandLibrary,在主程序和主程序的Content下都添加对LandLibrary的引用

3、在LandLibrary下新建一个类叫CharacterType用来表示一种游戏角色类别,这就是我们要用内容管道读取的对象,定义几个公有字段如图。

4、在LandLibrary下新建一个类叫Character,除了拥有和CharacterType对应的字段外,还有几个自身的字段,这就是实际游戏中看到的游戏角色了!构造函数传入一个CharacterType表示新建的角色属于的角色类型,如图。

 

5*、在LandLibrary下新建一个ContentTypeReader,用来从数据流中读取数据并存入到一个CharacterType中。(请先把下面耐心看完再操作否则你会后悔,嘻嘻嘻嘻)

6*、在LandLibrary下新建一个ContentTypeWriter,用来向数据流中写入数据。

7、GOOD,现在可以编写一个XML文件放入主程序的Content里,然后在主程序中使用game.Content.Load<CharacterType>("你的XML文件的Asset Name")来从XML中读取角色类型,并使用这个读取的类型作为参数创建新角色(Character)了!但是要注意,XML文件中字段的顺序要与CharacterType中字段的顺序一致,一个实例如图。嘻嘻嘻嘻……在这里告诉大家一个不幸的消息,第5步和第6步是可做可不做的,因为XNA3.1很强大啦……

8、运行结果

范例下载: 200906232306453762.rar

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *