《XNA游戏开发》Game1类的方法与字段
2011-10-17 12:18 张剑 阅读(561) 评论(0) 编辑 收藏 举报《XNA游戏开发》简介
《XNA游戏开发》Game1类的方法与字段
《XNA游戏开发》在战机游戏中使用Decorator模式
在上一篇内容中,我们了解到建好项目后生成的Game1类是继承自Microsoft.Xna.Framework.Game类型,然后再重写其中的方法,也就是说,我们的游戏主体这个Game1并不一定非要是这样的命名,当然你可以更改一个其他的名字,但是在改类名后,对应的在Program类的Main法中new的对象得相对应的变更为你改过的类型。
一、Game1中的字段:
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
其中GraphicsDeviceManager为绘制界面管理类型。
SpriteBatch 为精灵处理类型(绘制处理类型)。
二、构造方法:
- public Game1() {
- graphics = new GraphicsDeviceManager(this); //初始化为界面管理对象
- Content.RootDirectory = "Content"; //设置内容读取的目录
- }
构造方法中:将graphics对象先创建出来,并规定Content的目录在Content文件夹之下。
三、Initialize方法:
- protected override void Initialize() {
- base.Initialize();
- }
作用:改写原父类型的初始方法。
说明:因为Microsoft已经把繁复的初始内写在父类型当中变得相当简化,直接调用base(基底类型)使用即可所以可以让我们专心在游戏重点的初始化。
也就是说,Microsoft为我们提供可更改初如化的机会。
- protected override void LoadContent() {
- spriteBatch = new SpriteBatch(GraphicsDevice);
- }
- protected override void UnloadContent() { ... }
- protected override void Update(GameTime gameTime) {
- if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
- this.Exit();
- base.Update(gameTime);
- }
作用:重写了逻辑更新的方法。
其中:GameTime对象可以取得游戏时间。
GamePad对象可以得知玩家1是否按下了倒退键而退出游戏。
七、Draw方法:
- protected override void Draw(GameTime gameTime) {
- GraphicsDevice.Clear(Color.CornflowerBlue);
- base.Draw(gameTime);
- }
作用:重写了绘制游戏的部分。
说明:使用GameDevice对象Clear方法,把画面清成淡蓝色,同时也调用父类型进行运作。
八、注意Update与Draw方法:
1.Update跟Draw会连续进行每秒钟60HZ的更新速度来跑动游戏。
2.其他几个方法,分别为游戏启动时或关闭时进行调用。
3.如果我们想控制游戏的速度,可以通过Update中的GameTime定义
通过以上介绍,大概对XNA框架中,一些基本类及方法的作用及说明有了简单的了解。在以后的内容中,我们再详细介绍每个方法中如何编写代码,实现游戏的运行。