zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    python目录
    面向对象
    模块(二)
    python函数(四)
    助教工作总结
    第五次个人作业:个人总结
    Typroa编写的图片上传博客园
    msfconsole利用ms17-010和ms12-020攻击
    第四次个人作业——案例分析
    助教周报(第二轮)
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120348.html
Copyright © 2011-2022 走看看