欢迎来到天天文库
浏览记录
ID:46921030
大小:235.50 KB
页数:12页
时间:2019-11-30
《3xnaframework常用的类别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、个人收集整理仅供参考学习摘要上一回我们为大家介绍了如何使用VisualStudio2010或VisualStudio2010ExpressforWindowsPhone设计以XNA为基础的WindowsPhone7游戏程序,并了解以XNA为基础的游戏程序的基础架构与核心功能。这一回我们将要为大家介绍XNAFramework支持游戏程序制作的重要类别,做为开发游戏程序的基础知识。除此之外,我们也将利用本文所介绍的类别实作一个简单的游戏程序,并令其具有能够不断卷动的背景图案。GraphicsDeviceManager类别第一个要介
2、绍给大家认识的是负责管理绘图装置的GraphicsDeviceManager类别。以XNA为基础的游戏程序必须在初始化的时候建立妥GraphicsDeviceManager类别的对象,并设定包括游戏程序窗口高度与宽度在内的必要属性,做为显示游戏内容的基础。有关于游戏程序初始化阶段建立GraphicsDeviceManager类别的对象的详细做法可以参考[设计以XNA为基础的WindowsPhone7游戏]一文的说明。表1所示即为GraphicsDeviceManager类别常用的属性:表1:GraphicsDeviceMana
3、ger类别常用的属性属性名称说明IsFullScreen控制游戏程序的窗口是否要以全屏幕的方式显示PreferredBackBufferFormat屏幕缓冲区的格式PreferredBackBufferHeight屏幕缓冲区的高度PreferredBackBufferWidth屏幕缓冲区的宽度GraphicsDeviceManager类别常用的方法请参考表2的说明:表2:GraphicsDeviceManager类别常用的方法方法名称说明ToggleFullScreen在窗口模式和全屏幕模式中切换游戏核心类别以XNA为基础的游
4、戏程序的主体是Game类别,也是做为游戏程序主体的Game1类别的基础类别。游戏程序可以利用Game1类别的Update方法更新游戏的状态,利用Draw方法显示游戏的内容。表3所示即为Game类别的常用属性:表3:Game类别常用的属性属性名称说明Components管理所有GameComponent的集合Content取得ContentManager对象的属性GraphicsDevice取得图型装置对象的属性IsActive判断游戏程序的窗口目前是否在作用中IsFixedTimeStep控制游戏程序要使用固定更新模式或是可变
5、更新模式TargetElapsedTime当IsFixedTimeStep属性的内容值为true时,控制Update方法被呼叫的频率的属性个人收集整理仅供参考学习Game类别常用的方法可以参考表4的说明:表4:Game类别常用的方法方法名称说明Exit结束游戏程序的执行BeginDraw宣告绘制图形的动作开始EndDraw宣告绘制图形的动作结束Draw执行绘制游戏内容的动作LoadContent执行加载游戏资源的方法UnloadContent执行释放游戏资源的方法Update负责更新游戏状态的方法如果程序设计师要以模块化的方式
6、设计游戏程序,可以将游戏的人物制作成GameComponent类别或是DrawableGameComponent类别,再将GameComponent类别的对象或是DrawableGameComponent类别的对象加入到Game类别的对象的Conponents集合中,由Game类别的对象统一管理,把复杂的游戏人物的初始化、状态更新、以及更新显示等动作封装在GameComponent类别或是DrawableGameComponent类别中,可以有效简化Game类别的控制逻辑。当游戏人物众多,角色复杂时,适当地利用GameComp
7、onent类别或是DrawableGameComponent类别可以提升游戏的可维护性,利于发展功能进阶,效果复杂的游戏。XNAFramework提供的GameComponent类别和DrawableGameComponent类别的差别在于DrawableGameComponent类别管理的是有用户接口的游戏组件,而GameComponent类别所管理的则是没有用户接口的游戏组件。换句话说,DrawableGameComponent类别提供了GameComponent类别未支持的LoadContent方法和Draw方法,以便执
8、行加载所管理的游戏资源和显示游戏的内容的工作。当建立好GameComponent类别的对象或DrawableGameComponent类别的对象之后,只要将GameComponent类别的对象或DrawableGameComponent类别的对象加入到Game类别的对象的Co
此文档下载收益归作者所有