XNA游戏开发之(七)——XNA游戏开发框架解析

 1  using  System;
 2 
 3  namespace  AlexGameBase
 4  {
 5       static   class  Program
 6      {
 7           ///   <summary>
 8           ///  游戏主程序入口点
 9           ///   </summary>
10           static   void  Main( string [] args)
11          {
12               using  (Game1 game  =   new  Game1())
13              {
14                   // 运行游戏,游戏框架主循环
15                  game.Run();
16              }
17          }
18      }
19  }

 

  1  using  System;
  2  using  System.Collections.Generic;
  3  using  System.Linq;
  4  using  Microsoft.Xna.Framework; // XNA基类库
  5  using  Microsoft.Xna.Framework.Audio; // 音频
  6  using  Microsoft.Xna.Framework.Content; // 资源(素材)
  7  using  Microsoft.Xna.Framework.GamerServices; // 玩家相关服务
  8  using  Microsoft.Xna.Framework.Graphics; // 图形图像
  9  using  Microsoft.Xna.Framework.Input; // 输入设备,键盘,手柄等
 10  using  Microsoft.Xna.Framework.Media; // 媒体
 11  using  Microsoft.Xna.Framework.Net; // 网络
 12  using  Microsoft.Xna.Framework.Storage; // 存储 保存游戏状态文件等
 13 
 14  namespace  AlexGameBase
 15  {
 16       ///   <summary>
 17       ///  游戏主程序类
 18       ///   </summary>
 19       public   class  Game1 : Microsoft.Xna.Framework.Game
 20      {
 21           // 可理解为"图形设备管理器",包括显卡设备
 22          GraphicsDeviceManager graphics;
 23          SpriteBatch spriteBatch;
 24           ///   <summary>
 25           ///  游戏主程序构造函数(初始化)
 26           ///   </summary>
 27           public  Game1()
 28          {
 29               // 可理解为装配"图形设备管理器"
 30              graphics  =   new  GraphicsDeviceManager( this );
 31               // 建立游戏素材导入管道,将素材导入游戏。
 32               this .Content  =   new  ContentManager(Services);
 33               // 设置游戏素材目录
 34               this .Content.RootDirectory  =   " Content " ;
 35          }
 36 
 37           ///   <summary>
 38           ///  游戏启动前初始化区域,可初始化服务和加载非图形素材(只调用一次)
 39           ///   </summary>
 40           protected   override   void  Initialize()
 41          {
 42               // 添加初始化逻辑代码
 43 
 44               base .Initialize();
 45          }
 46 
 47           ///   <summary>
 48           ///  游戏运行时加载游戏素材
 49           ///   </summary>
 50           protected   override   void  LoadContent()
 51          {
 52               //  实例化"游戏精灵", 用来重绘游戏材质。
 53              spriteBatch  =   new  SpriteBatch(GraphicsDevice);
 54 
 55              
 56          }
 57 
 58           ///   <summary>
 59           ///  卸载游戏资源(素材)
 60           ///   </summary>
 61           protected   override   void  UnloadContent()
 62          {
 63               //  卸载非ContentManager资源
 64          }
 65 
 66           ///   <summary>
 67           ///  游戏渲染方法 可将捕获时间放在此处,如键盘输入,手柄输入,音乐播放等。
 68           ///  每次调用渲染一帧
 69           ///   </summary>
 70           ///   <param name="gameTime"> 游戏时间. </param>
 71           protected   override   void  Update(GameTime gameTime)
 72          {
 73               // 获取键盘状态
 74             KeyboardState keyboardState =  Microsoft.Xna.Framework.Input.Keyboard.GetState();
 75              // 当按下Esc键退出游戏
 76               if  (keyboardState.IsKeyDown(Keys.Escape))
 77                  this .Exit();
 78               //  获取手柄状态
 79               if  (GamePad.GetState(PlayerIndex.One).Buttons.Back  ==  ButtonState.Pressed)
 80                   this .Exit();
 81 
 82               base .Update(gameTime);
 83          }
 84 
 85           ///   <summary>
 86           ///  游戏窗体重绘
 87           ///  每一帧先调用Update方法,用来修改渲染参数,然后调用Draw方法渲染模型
 88           ///   </summary>
 89           ///   <param name="gameTime"> Provides a snapshot of timing values. </param>
 90           protected   override   void  Draw(GameTime gameTime)
 91          {
 92               //  清屏为蓝色
 93              GraphicsDevice.Clear(Color.CornflowerBlue);
 94 
 95               //  TODO: Add your drawing code here
 96 
 97               base .Draw(gameTime);
 98          }
 99      }
100  }
101 

 

 

你可能感兴趣的:(开发框架)