xna动画的实现4保存动画数据

xna动画的实现4保存动画数据

ID:34328370

大小:66.00 KB

页数:12页

时间:2019-03-05

xna动画的实现4保存动画数据_第1页
xna动画的实现4保存动画数据_第2页
xna动画的实现4保存动画数据_第3页
xna动画的实现4保存动画数据_第4页
xna动画的实现4保存动画数据_第5页
资源描述:

《xna动画的实现4保存动画数据》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、XNA动画的实现4——保存动画数据在上一篇文章中,我们实现了关键帧类实现了复杂的动画,这些复杂动画的数据都是在程序中手动生成的,为了能够重用这些数据,有必要实现下述功能:将动画数据保存为磁盘上的一个文件,使用时只要从磁盘上读取这个文件构成动画数据类,就可以在内存中使用它了。要做到这一点,只需使用.NET框架的文件IO功能将动画数据文件串行化。首先是关键帧数据类Keyframe.cs,代码如下:///

///关键帧类,表示一个动画片段(AnimationClip)中一个指定时刻的状态(包含位置、旋转、缩放信息),///多个关键

2、帧组成一个动画片段。///

publicclassKeyframe{//////位置///publicVector3Position{get;set;}//////旋转///publicVector3Rotation{get;set;}//////缩放///publicVector3Scale{get;set;}//////此关键帧离开动画开始时刻的时间,单位为秒///pu

3、blicdoubleTime{get;set;}///

///创建一个关键帧///publicKeyframe(Vector3Position,Vector3Rotation,Vector3Scale,doubleTime){this.Position=Position;12/12this.Rotation=Rotation;this.Scale=Scale;this.Time=Time;}//必须要有一个不带参数的构造函数用于串行化privateKeyframe(){}}这个代码与上一篇文章几乎是一样的

4、,但有三点不同:1.各个属性由原来的只读变成可写,这样做破坏了类的封装性,让用户可以设置属性值,从而导致错误。但是要让这个类可串行化,属性必须可写。2.Time属性由原来的TimeSpan类型变成了double类型。这是因为.NET框架无法串行化TimeSpan类型,导出为空值,所以只能换种类型。下一篇文章的方法可以解决这个问题。3.必须要有一个不带参数的构造函数,否则串行化过程会报错。然后是动画数据类AnimationClip.cs,你需要将数据和方法分离,因此,相对于上一篇文章,这个类删除了方法,只保留了数据,变得简单多了。代码如下:/

5、//

///动画片段类,这个类保存一个关键帧集合和动画持续时间。///publicclassAnimationClip{//////动画片段的播放长度///publicdoubleDuration{get;set;}//////关键帧集合///publicListKeyframes{get;set;}//////创建一个动画片段//////

6、ames">关键帧集合publicAnimationClip(ListKeyframes){this.Keyframes=Keyframes;//对关键帧根据时间先后进行排序Keyframes.Sort(CompareKeyframeTimes);//动画播放的时间就是最后一个关键帧的Time属性12/12this.Duration=Keyframes[Keyframes.Count-1].Time;}///

///创建一个动画片段,数据是从一个xml文件加载的///p

7、ublicAnimationClip(stringfileName){//----------------------------//下述代码应该还有改进空间//---------------------------AnimationClipanimationData;//将xml文件反串行化获取动画数据using(XmlReaderreader=XmlReader.Create(fileName)){XmlSerializerserializer=newXmlSerializer(typeof(AnimationClip));animat

8、ionData=(AnimationClip)serializer.Deserialize(reader);}this.Keyframes=animationData.Keyfr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。