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

1 using System;
2
3 namespace AlexGameBase
4 {
5 static class Program
6     {
7 ///


8 /// 游戏主程序入口点
9 ///

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 ///


17 /// 游戏主程序类
18 ///

19 public class Game1 : Microsoft.Xna.Framework.Game
20     {
21 //可理解为"图形设备管理器",包括显卡设备
22         GraphicsDeviceManager graphics;
23         SpriteBatch spriteBatch;
24 ///
25 /// 游戏主程序构造函数(初始化)
26 ///

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 ///
38 /// 游戏启动前初始化区域,可初始化服务和加载非图形素材(只调用一次)
39 ///

40 protected override void Initialize()
41         {
42 //添加初始化逻辑代码
43
44 base.Initialize();
45         }
46
47 ///
48 /// 游戏运行时加载游戏素材
49 ///

50 protected override void LoadContent()
51         {
52 // 实例化"游戏精灵", 用来重绘游戏材质。
53             spriteBatch = new SpriteBatch(GraphicsDevice);
54
55
56         }
57
58 ///
59 /// 卸载游戏资源(素材)
60 ///

61 protected override void UnloadContent()
62         {
63 // 卸载非ContentManager资源
64         }
65
66 ///
67 /// 游戏渲染方法 可将捕获时间放在此处,如键盘输入,手柄输入,音乐播放等。
68 /// 每次调用渲染一帧
69 ///

70 /// 游戏时间.
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 ///
86 /// 游戏窗体重绘
87 /// 每一帧先调用Update方法,用来修改渲染参数,然后调用Draw方法渲染模型
88 ///

89 /// Provides a snapshot of timing values.
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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值