C#游戏开发教程--指引如何开发最好的游戏-游戏开发频道-中国IT实验室-技术·资讯·教育·服务·社区
首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
 您现在的位置: 中国IT实验室 >> 游戏开发 >> 游戏开发文档 >> 正文
C#游戏开发教程--指引如何开发最好的游戏
来源:ChinaItLab 作者: 时间:2004-12-23


  本文适合有一定编程基础的爱好者!本文不会涉及基本的语法等内容,本文
  
  适合所有游戏开发初学者,本文从Microsoft DirectX 9.0 SDK (Summer 2004)中
  
  的D3D下Tutorials文件夹下的例子开始!!
  
  关键字:c# 游戏开发 3D 教程
  
  C#(读作“C sharp”)是一种简单、现代、面向对象且类型安全的编程语言。C 和 C++ 程序员能很快熟悉它。C# 同时具备“应用程序快速开发”(RAD) 语言的高效率和 C++ 固有的强大能力。(c#语言标准参考如是说)
  
  废话少说,进入主题,开始我们的c#游戏开发之旅!(翻译有误请多原谅)
  
  第一章      组建我们的设备
  
  1。建立一个DX程序,首先你需要下载Microsoft DirectX SDK(最好事9.0一下简称DX),安装。然后事要保证你安装了Visual Studio .NET开发产品套件(一下简称vs.net),这是最小环境,然后你就可以进行游戏开发了。
  
  建立一个DX设备。打开DX中的Tutorials文件夹下的Tutorials1例子并打开编译!下面是运行结果:
  
  创建了一个DX窗口!
  
  下面是代码:
  
  //-----------------------------------------------------------------------------
  
  // File: CreateDevice.cs
  
  // 创建设备
  
  // Desc: This is the first tutorial for using Direct3D. In this tutorial, all
  
  //    we are doing is creating a Direct3D device and using it to clear the
  
  //    window.
  
  // 注释:这是第一个使用D3D的教学例子,在这个例子中,我们要作的仅仅是创建以个D3D“设备”和刷新窗口
  
  // Copyright (c) Microsoft Corporation. All rights reserved.
  
  //-----------------------------------------------------------------------------
  
  using System;
  
  using System.Drawing;
  
  using System.Windows.Forms;
  
  using Microsoft.DirectX;
  
  using Microsoft.DirectX.Direct3D;
  
  
  
  namespace DeviceTutorial
  
  {
  
  public class CreateDevice : Form
  
  {
  
  // Our global variables for this project
  
  Device device = null; // Our rendering device
  
  //我们的绘图设备
  
  public CreateDevice()
  
  {
  
  // Set the initial size of our form
  
  //设置窗体的初始值
  
  this.ClientSize = new System.Drawing.Size(400,300);
  
  // And it's caption
  
  //设置窗体标题
  
  this.Text = "D3D Tutorial 01: CreateDevice";
  
  }
  
  public bool InitializeGraphics()
  
  {
  
  try
  
  {
  
  // Now let's setup our D3D stuff
  
  //现在我们设置D3D的一些选项
  
  PresentParameters presentParams = new PresentParameters();
  
  presentParams.Windowed=true;//标志着程序运行时窗口模式
  
  presentParams.SwapEffect = SwapEffect.Discard;//返回或设置交换区选项????
  
  device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
  
  //?,设备的类型(这里选择了硬件),创建图形设备的窗体,创建类型,创建实体);
  
  //创建设备实例
  
  return true;
  
  }
  
  catch (DirectXException)//捕捉DX异常
  
  {
  
  return false;
  
  }
  
  }
  
  private void Render()//刷新模块
  
  {
  
  if (device == null)
  
  return;
  
  //Clear the backbuffer to a blue color
  
  //将设备窗口刷成绿色
  
  device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0f, 0);
  
  //clear(刷屏的参数这里选的是目标,使用的颜色,深度(可能用于模板),模板(0)因为没有使用模板)
  
  //Begin the scene
  
  //开始渲染场景,(因为没有场景所以一下句是空的就直接结束了场景的渲染)
  
  device.BeginScene();
  
  // Rendering of scene objects can happen here
  
  //可以在这里渲染场景
  
  //End the scene
  
  //结束场景的渲染
  
  device.EndScene();
  
  device.Present();
  
  }
  
  protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) //重写OnPaint方法
  
  {
  
  //this.Render(); // Render on painting
  
  //循环的刷新窗口
  
  }
  
  protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)//重写OnKeyPress方法
  
  {
  
  if ((int)(byte)e.KeyChar == (int)System.Windows.Forms.Keys.Escape)
  
  this.Close(); // Esc was pressed
  
  //如果按下了ESC则退出程序
  
  }
  
  
  
  ///
  
  /// The main entry point for the application.
  
  /// 程序的主函数,入口点
  
  ///

  
  static void Main()
  
  {
  
  //使用USING语句创建对象保证对象的销毁
  
  using (CreateDevice frm = new CreateDevice())
  
  {
  
  if (!frm.InitializeGraphics()) // Initialize Direct3D
  
  {
  
  MessageBox.Show("Could not initialize Direct3D. This tutorial will exit.");
  
  return;
  
  }
  
  frm.Show();
  
  
  
  // While the form is still valid, render and process messages
  
  //消息循环
  
  while(frm.Created)
  
  {
  
  frm.Render();
  
  Application.DoEvents();
  
  }
  
  }
  
  }
  
  }
  
  }
  
  代码中有加入的注释!
  
  首先是:
  
  using System;
  
  using System.Drawing;
  
  using System.Windows.Forms;
  
  using Microsoft.DirectX;
  
  using Microsoft.DirectX.Direct3D;
  
  使用命3名空间!注意的是,在程序的Main主程序中使也用了USING,注意这是c#中的一条语句,using 语句定义一个范围,在此范围的末尾将处理对象。
  
  接着Device device = null;这句是申请了Device类的对象device但并未创建实例对象,实例对象的创建必须使用new语句创建。public bool InitializeGraphics() 函数 的作用是初始化DX,private void Render() 函数是渲染函数,其中的device.BeginScene(); 是开始渲染,device.EndScene();
  
  device.Present(); 结束渲染,就如同翻页!可以在BeginScene();和EndScene();函数之中添加图像的显示或文字的显示等其它工作!程序最后的
  
  while(frm.Created)
  
  {
  
  frm.Render();
  
  Application.DoEvents();
  
  }
  
  是检测程序是否在执行,是则使用frm实例对象的方法Render();来渲染屏幕,Application.DoEvents();是执行消息循环!
  
  这样!一个简单的DX窗口就建立好了!
【责编:admin】

中国IT教育热线咨询

相关文章
dx8中关于用索引缓冲渲染索引图元
作为一个状态机的OpenGL
OGRE中的四元数与旋转
[RGSS]Sprite类方法教学
[RGSS]去掉“战斗|逃跑”选项
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
 基础入门  开发文档
 最新推荐
  多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它......
游戏引擎演化史
在Windows上安装OGRE的方法
关于滤镜遮罩概念,Sobel 遮罩
游戏开发新手入门之Windows编程
游戏开发新手入门之位图化图形
教你实现卡通渲染的另类勾边方法
游戏设计大师谈如何成为一名游戏设
Visual C#编写 3D游戏框架示例
真正的 Java 学习从入门到精通
游戏开发经验——游戏开发的基本常
  为什么要研究攻击行为在人类有记载的5600年的历史中,共计发生了14,400次战争;今天,平均一天要发生............
游戏开发中显示对话的特殊句法
游戏原型设计的介绍
网络游戏中的攻击行为
谈动作类游戏的必要条件
规则的多元分析模式
载入位图文件到DirectDraw
Archer Game Suite 是什么?
浅谈游戏企划-新手入门篇
暴雪称霸游戏业界的六大秘密绝招
骨骼动画及示例Skinned Mesh的解析
  培训中心