基于XNA的图文演示系统的设计与应用

时间:2024-02-01 点赞:47493 浏览:94673 作者原创标记本站原创

本文是一篇页面论文范文,关于页面相关毕业论文格式,关于基于XNA的图文演示系统的设计与应用相关专科毕业论文范文。适合页面及演示及元素方面的的大学硕士和本科毕业论文以及页面相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:分析了通用的演示系统缺少互动性和美观性的现状,提出了基于XNA游戏平台的演示系统.该演示系统使用了状态机机制来实现区分阶段,实现游戏平台内的桌面逻辑块,又为页面设计了常用的页面元素及其简单动画,然后内置了40种页面过渡效果,最后实现了一个系统外的内容录入和结构编排系统,再在演示系统内设计了一个控制台,实现页面微调.实践表明,该系统具有一定的通用性和灵活性,可用于多数场合的演示.

关 键 词:XNA;演示系统;状态机;页面元素;过渡效果;内容录入;控制台

中图分类号:TP319文献标识码:A文章编号:1009-3044(2013)24-5524-04

当前,电脑已经非常普及,在此基础上的多媒体技术更是应用到了生活的各个方面.在进行授课、演讲时,许多人都会利用电脑软件播放一些图片、音频、视频等,以增加演说的效果[1].最常用的软件是微软的PowerPoint及其兼容产品[2],将要演示的内容以一张张幻灯片的形式组织起来,编辑的时候可直接在幻灯片上进行编辑.PowerPoint方便易用,并且具有丰富的过渡特效和图文出现特效,使演说过程富含动态效果.然而,如果想使效果更复杂一点,PowerPoint就感到比较吃力了.此外还有Prezi[3]和VHCapture[4]等通用演示软件,以及演示算法的专用演示软件[5-8]和其它领域的专用演示软件[9],同样在互动性上支持得不够.

在多媒体展示领域,游戏在互动性和画面效果方面具有天然的优势,可以比PowerPoint等软件做得更好.李悦乔尝试了在RPGMaker游戏引擎的支持下演示计算机语言的思想,取得了一定的成果[10].该文将利用XNA游戏平台,实现一个有丰富的动画效果的图文演示系统,为演说过程提供更丰富、更灵活的动画支持.

XNA是微软旗下的游戏平台,它支持Windows、Xbox、WinPhone上的游戏开发,而且可以轻易将游戏从一个平台移植到另外两个平台,因此开发出来的演示系统可以方便地编译成PC版本、WinPhone手机版本、Windows平板电脑版本等.

1状态机结构

XNA主架构由两个循环组成,一个是逻辑循环,另一个是绘图循环.我们都知道,计算机应用程序或者游戏程序的结构,实质上是一个无限循环.一般游戏引擎都将逻辑和绘图工作放在一个帧循环中,这样容易造成逻辑和绘图的混淆.XNA的两个独立循环的结构不但结构清晰,也不会因为程序员的疏忽导致因语句先后顺序而引发的潜在Bug的出现.

对于稍微大型的程序来说,将所有内容写在一个逻辑循环中也是很麻烦的.参照计算机体系结构中的“状态机”的概念,这个系统将整个过程分成许多个状态,每个状态的逻辑结构应该尽可能简单,每个时刻系统处于且仅处于一种状态当中.设立有限状态机来管理各个状态,它在系统一开始时就运行,在每一次逻辑更新时检查是否需要切换状态以及如何切换状态,它随着系统的退出而结束.这样,在逻辑更新中几乎只有常规性、通用性的逻辑代码,而具体代码可以分散到各个状态中.这样的结构可以保证系统的灵活性.当状态数量比较多的时候,需要设立状态组来对状态进行分类,状态组中也可以包含其它状态组,但每个状态/状态组只存在于一个状态组之中.状态与状态组的关系类似于Windows系统中的文件与文件夹的关系.

具体实现的时候,将系统的开始画面和每个页面都定义为一个状态组,每个状态组有三个状态:进入、维持、退出.“进入”和“退出”状态是用于画面过渡的,一般只维持零点几秒到1秒,而“维持”状态用于长期显示一个页面,该页面中有文字、图片、音乐、视频的播放,也有互动元素的实现.属于画面过渡阶段的进入和退出状态是比较固定的一类状态,可变的元素主要是进入或退出的时间和过渡方式,因此再设置一种从基本状态派生出来的“演示状态”,它默认不接受互动,用户可以设置它的演示时长和过渡方式.进入状态和退出状态都是属于演示状态.


2页面内容

作为演示系统,最主要的是演示功能,演示的内容主要包括图片信息、文字信息、视频、以及过程信息.同一类的内容通常都在一个画面当中,这里称为页面.如前所述,与每个页面相关的状态有三个:进入状态、维持状态和退出状态,它们组成一个状态组.

页面的内容丰富多变,如果针对每次演示的内容而在代码中实现它,无疑能最大程度地实现灵活性,能具备最丰富的效果,但是却非常麻烦,因此必须对每个页面的内容进行标准化限制.在这个系统里,每个页面只支持文字、图片和视频信息,系统里用“页面元素”把它们显示出来.显然,页面元素分成三类,分别是文字元素、图片元素和视频元素.

2.1页面元素的共同属性

只要文字的字体大小和内容确定了,它就有了确定大小的包围框;图片元素和视频元素的内容一旦确定,它们也有了一个确定大小的包围框,因此所有页面元素都具有包围框原始大小的属性,它受内容而定,并不会发生变化.

在页面元素的原始大小属性的基础上,为了丰富页面元素的变化效果,增加了重心坐标、重心类型、位置、缩放比例、滤色、旋转属性.

重心是元素中的一个点,页面元素的位置指的就是它的重心在屏幕上的位置,页面元素的缩放和旋转是以重心为中心进行的.重心默认坐标是(0,0),即包围框的左上角,用户也可以根据需要直接指定一个重心坐标.为了方便数值的计算,引入重心类型,它有9种可能值,分别是左上、正上、右上、正左、正中、正右、左下、正下、右下.当用户指定了重心类型,系统会根据包围框的大小自动计算重心坐标,同时用户之前指定的重心坐标会失效.

页面元素的“位置”属性指它的重心在屏幕中的位置,页面元素的“缩放比例”属性指它的包围框分别在长、宽上的缩放倍数,页面元素的“旋转”属性表示元素以重心为中心旋转的度数.比较特殊的是“滤色”属性,它是一个颜色值,表示在原来颜色的基础上红、绿、蓝各保留多少百分比的颜色.例如,显示器上的黄色是由红色和绿色混合得到的,因此黄色的图像使用绿色滤色之后就变成绿色,如何使用蓝色滤色就会变成黑色.有了这些属性,用户已经可以令页面元素有比较多的变化了.但为了再进一步丰富效果及简化使用过程,页面元素还设置了若干常用的属性值变化过程.首先,重心坐标、位置、缩放比例、滤色、旋转等五个基本属性,都有值到值(value-to-value)的变化方式,即用户只需要一条调用方法的语句并且确定起始值、终值、变化时间、加速度类型等参数就可以了.另外,位置、缩放比例、旋转等三个基本属性还有常加速变化方式,用户只需要一条调用方法的语句并确定起始值和加速度值就可以了.最后,位置属性还有圆周运动、随机运动等变化方式,滤色属性还有闪烁变化.

有了页面元素的这些共同属性及常用变化功能,在演示页面中实现规则动画就变得非常简单了,用户可以轻易实现有丰富动画效果的页面.

2.2各种页面元素的特殊属性

对于文字元素,字体和大小是必须在初始化时就设置好的,不可更改.用户可以设置文字间距属性、行距属性,使得文字效果更加丰富,但这两个属性不提供动画效果.用户也可以动态地改变文字内容,但是文字内容的改变会导致文本框大小的改变.

对于图片元素,用户可以设置成纵向、横向无限平铺的方式,这主要用于背景图像的运动.如果单个图片文件中包含了若干序列帧,用户还可以通过指定图片元素的序列帧的分割方式之后播放序列帧,形成简单动画.如果图片元素是一个gif图片,它也可以播放其动画.

对于视频元素,没有特别的属性,仅播放视频.因为系统是由XNA平台开发,它需要支持XBOX和WinPhone等系统,所以目前只能播放.wmv格式的视频文件.

对页面元素进行了规范化和限制之后,虽然表现力的自由度减少了,但使用起来简便了许多,而一些常用的动画功能也得到了实现.

3页面编辑系统

页面编辑可以分为两个阶段,首先是文字录入和页面结构安排,然后是页面元素的微调.在第一个阶段,用户要录入需要显示的文字、图片文件和视频文件,还需要设置它们的大概位置.在第二个阶段,用户须对显示出来的元素的位置、缩放、颜色、旋转等属性进行微调,使页面更加美观.

3.1页面元素录入和页面结构安排阶段

由于XNA是游戏平台,它不支持输入法,因此在里面显示的文字需要以图片方式显示.显示文字的方法有两种,一种是预编译,在程序编译阶段利用XNA的ContentPipeline生成指定区域内的所有文字的图片,但是这里不合适,因为筛选文字的过程非常漫长而且烦琐,而且它是在源代码层次进行修改的;如果想简化筛选过程就要选择一个较大的字符集,而这样又会使编译时间长达数小时.另一种显示文字的方法是使用GDI+技术将文字实时绘制到内存位图中,再将它以图片的形式显示出来.这种方法的好处是可以在运行时生成图片,因此文本内容可以在应用时输入.这个演示系统使用的就是第二种方法.

在一个演示系统中,页面中元素的结构是比较稳定的.为了加速页面编辑过程,用户可以将某页的元素结构保存为模板,在新的一个页面中应用模板就可以对其中内容进行批量的设置.此举可以减轻重复编辑页面结构的工作量.

为了将元素内容的录入工作和页面结构的安排工作放在演示系统外来完成,系统将这些内容、结构信息放在一个XML文档中,系统开始运行时就将该文档读入.而为了进一步方便该XML文档的编辑,另外编写了一个编辑器,大大方便了用户的录入.编辑器界面如图1所示:

3.2页面元素微调

利用页面编辑器,编辑结果是不可实时显示的,因此还须要运行演示系统来观看结果,然后再在编辑器中调整,再运行系统观看,如此反复,这个过程就是页面元素的微调.

从上面的描述可以看到,元素微调的工作是十分烦琐的.为了简化微调工作,在演示系统中设置了运行时工作台.在运行演示系统时,用户按下“`”键可打开工作台,系统在左上角显示出黑色半透明背景、黄色字体的控制台区.效果如图2所示:

所有页面元素属性的编辑都有相应的控制台命令,用户输入控制台命令就可以设置属性.而为了更进一步方便常用属性的编辑,用户可以使用鼠标对页面元素的位置、缩放、旋转三个属性进行可视化编辑,所见即所得.

编辑完成后,关闭控制台,系统会保存编辑效果到XML文件.

4画面切换效果

在页面之间切换时可以使用切换效果.切换效果使用HLSL语言写在.fx文件中,由XNA编译生成.xnb文件后再使用.本演示系统内置了展开、擦除等40种效果,而最新的PowerPoint2013也只有14种不同的页面切换效果.用户也可以借助RenderMonkey等软件自己编写效果文件,用XNA编译后命名为SlideEffects.xnb取代原文件就可以了.

5结束语

现有的最流行的演示系统是微软的PowerPoint,它已经具备比较完善的编辑与

本文是一篇页面论文范文,关于页面相关毕业论文格式,关于基于XNA的图文演示系统的设计与应用相关专科毕业论文范文。适合页面及演示及元素方面的的大学硕士和本科毕业论文以及页面相关开题报告范文和职称论文写作参考文献资料下载。

播放功能,但它在动态效果上的支持却比较少.该文所实现的演示系统主要在动态效果上做出改进,实现了多种页面切换效果和元素动画效果,也支持高级的互动功能.

相关论文

高等院校教学管理系统的设计与实施

本文是一篇教学管理系统论文范文,教学管理系统类有关毕业论文开题报告范文,关于高等院校教学管理系统的设计与实施相关毕业论文模板范文。适。

电力通信工程系统资源设计

关于电力通信及管理系统及数据库方面的免费优秀学术论文范文,关于电力通信类论文标准格式,关于电力通信工程系统资源设计相关论文范文数据。

开放式机房管理系统的设计

此文是一篇机房论文范文,关于机房论文范本,与开放式机房管理系统的设计相关硕士论文开题报告。适合不知如何写机房及学生及机器方面的行政管。

企业数据统计报表系统的设计

本论文是一篇报表方面有关毕业论文初稿模板,关于企业数据统计报表系统的设计相关电大毕业论文范文。免费优秀的关于报表及数据及格式方面论。

单片机应用系统的设计与系统调试

关于软件设计及可靠性及系统方面的免费优秀学术论文范文,关于软件设计相关论文任务书范文,关于单片机应用系统的设计与系统调试相关论文范。