用心服务 创造品牌

首页 | 公务员 | 报关员 | 计算机 | 证券师 | 研究生 | 成考 | 自考 | 高考 | MBA | 英语 | 会计师 | 导游 | 医师 | 精算师 | 经纪师

您现在的位置: 21世纪考试网 >> 认证类考试 >> 计算机应用与软件 >> 复习资料 >> 正文 21世纪考试网助你一臂之力!

   复习资料

VisualC#编写3D游戏框架示例

来源:www.21ks.net  作者:佚名 更新时间:2008-4-30 19:18:35


  你可能对实际地编写游戏代码期待已久了。由于DirectX SDK 2004年夏季更新包含了一个牢固的示例框架组件,并且它被设计成能在你自己的代码中直接使用,同时还为你处理了很多事务,所以你只要简单的使用它,就可以节省大量的时间和精力。

  本文中的例子使用的就是这个示例框架组件,在本文中,你将学习到的内容有:

  · 如何建立自己的项目

  · 如何使用示例框架组件来列举设备

  建立项目

  在本文中,我假定你的所有开发工作都将使用Visual Studio .net 2003来完成。如果你不希望使用这个环境,可以使用命令行编译代码,它允许你使用任意的文本编辑器或集成开发环境(IDE)。

  启动Visual Studio .NET 2003并点击起始页面中的"新建项目"按钮。如果你没有使用起始页面,可以点击"文件"菜单下的"新建"子菜单中的"项目"菜单项,或者使用Ctrl+Shift+N。选择"Visual C#项目"区域中的"Windows项目"数据项。把这个项目命名为Blockers,这是游戏的名称。

  在你查看自动生成的代码之前,首先把示例框架组件添加到你的项目中。一般情况下,我会在"解决方案浏览器"中建立一个新文件夹,并把这些文件放入一个这个独立的文件夹中(把这个文件夹的名字取为Framework)。右键点击这个新建的文件夹,从"添加"菜单中选择"添加已有的项"。导航到DirectX SDK文件夹,你会发现该示例框架文件位于Samples\Managed\Common文件夹中,选择每个文件并添加到你的项目中。

  在示例框架组件被添加到项目中以后,你就可以去掉自动生成的代码了。这些代码中的大部分都是用于建立别致的Windows窗体应用程序的,因此,它与我们编写游戏的代码是无关的。用列表1中的代码替换已有的代码和类(Form1)。

  列表1:空的框架组件

using System;
using System.Configuration;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using Microsoft.Samples.DirectX.UtilityToolkit;

public class GameEngine : IDeviceCreation
{
 ///程序入口。初始化所有部分并进入一个消息处理循环。用空闲时间显示场景
 static int Main()
 {
  using(Framework sampleFramework = new Framework())
  {
   return sampleFramework.ExitCode;
  }
 }
}

  这段新代码中有三个地方比较突出。首先,你可能注意到了除了静态的main方法之外,删除了所有东西,而且main方法也被修改过。剩余的代码是Windows窗体设计器的支撑代码。由于这个应用程序不需要使用该设计器,因此这些代码就没有用了,可以被删除。其次,这段代码不能编译,因为游戏引擎希望实现的两个接口还未实现。再次,这段代码实际上没有做任何事务。

  在你开始解决后面两个问题之前,你必须添加一些引用。由于你准备在这个项目中显示奇特的3D图像,你就必须给项目添加能执行这样的显示操作的组件的引用。本文采用受控DirectX来执行这种操作,因此你需要在"项目"菜单中选择"添加引用"。图1显示了弹出的对话框。

  如果你安装了DirectX 9 SDK 2004年夏季更新,你会发现有多个版本的受控DirectX组件可供使用。请选择最新的版本(1.0.2902.0版本)。对于这个项目来说,你需要添加三个不同的组件引用:

  · Microsoft.DirectX

  · Microsoft.DirectX.Direct3D

  · Microsoft.DirectX.Direct3DX

  DirectX根(root)组件包含了辅助显示计算的数学结构。其它两个组件相应地包含了Direct3D和D3DX的功能。添加这些引用之后,你可以简单地查看一下列表1中添加的using语句,以确保名字空间被正确地引用了。这个步骤可以确保你不需要完整地限定类型。例如,如果不添加using语句,那么声明一个Direct3D设备变量,就必须使用下面的语句:

Microsoft.DirectX.Direct3D.Device device = null;

  Using语句可以减少很多输入内容(没有人希望在声明一个变量时输入全部的内容)。由于你已经增加了using语句,就可以使用如下所示的声明语句了:

private Device device = null;

  你可以看到,用这种方式声明变量简单多了,节省了大量的输入。在了解这些信息之后,你可以开始修补应用程序编译过程中的错误了,并准备好编写第一个3D游戏了。你现在必须实现的唯一一个接口是IDeviceCreation,它控制着设备的列举和建立。

  你可能会想"列举设备做什么?我只有一个监视器"!尽管一般情况下是这样的,但是现在的显卡实际上是支持多个监视器的,即使你只有一个设备,你仍然拥有多个可选择的模式。显示器的格式可能不同(你可以在Windows桌面设置中看到这些种类,例如16位色和32位色)。全屏幕模式下的高度和宽度也可能有不同的值,你甚至于还可以控制屏幕的刷新率。总而言之,还是有些事情需要解决。
列表2中的代码修补的应用程序中的编译错误。

  列表2:实现接口

/// 设备初始化的时候调用。这段代码检查设备最小的性能,
/// 如果没有通过检查,就返回false
public bool IsDeviceAcceptable(Caps caps, Format adapterFormat,
Format backBufferFormat, bool windowed)
{
 if (!Manager.CheckDeviceFormat(caps.AdapterOrdinal, caps.DeviceType,
   adapterFormat, Usage.QueryPostPixelShaderBlending,
   ResourceType.Textures, backBufferFormat))
  return false;

 if (caps.MaxActiveLights == 0)
  return false;

 return true;
}

/// 在建立某个设备之前,这个回调函数会被立即调用,以允许应用程序修改设备的
/// 设置信息。它提供的设置参数包含了框架组件为新设备挑选的设置, 并且应用程序
/// 可以直接对这个结构进行任何需要的修改。请注意,示例框架没有纠正无效的
/// 设备设置信息,因此必须小心地返回有效的设备设置,否则建立设备就会失败。
public void ModifyDeviceSettings(DeviceSettings settings, Caps caps)
{
 // 这个应用程序没有使用任何get方法,它被设计成在一个纯设备上工作。
 // 因此如果受到支持并且使用HWVP,就建立一个纯设备。
 if ( (caps.DeviceCaps.SupportsPureDevice) && ((settings.BehaviorFlags & CreateFlags.Har

[1] [2] [3] [4] 下一页

 
  • 上一篇认证类:

  • 下一篇认证类:
  • VIP俱乐部 | 我们优势 | 联系我们 | 学习问题 | 会员好评

    公务员考试辅导科目 精讲班 报 名
    主 讲 课 时 讲座
      最新公务员公务员考试辅导热点公务员 姚裕群 30课时 免费试听
      最新公务员注册会计师考试热点公务员 郑庆华 60课时 免费试听
      最新公务员报关员考试辅导热点公务员 覃珍珍 50课时 免费试听
      最新公务员职称英 语辅导热点公务员 王 霞 50-60 免费试听

    认证类录入:小芳老师    责任编辑:小芳老师 

    《VisualC#编写3D游戏框架示例》来源于21世纪考试网,欢迎阅读VisualC#编写3D游戏框架示例精华版。
       报考公务员所需要的全套资料     收藏全套公务员考试资料 更多>>
      最新公务员计算机等级考试 ·考试动态·报考指南·考试大纲·历年真题·模拟试题·复习资料·心得技巧最新公务员
      最新公务员计算机应用考试 ·考试动态·报考指南·历年真题·模拟试题·复习资料·心得技巧最新公务员
      最新公务员微软认证考试 ·考试动态·心得技巧·学习教程·试题中心·考试介绍最新公务员
      最新公务员Cisco认证考试 ·考试动态·考试指南·模拟试题·考试介绍最新公务员
      最新公务员软件工程师考试 ·软件设计师·数据库工程师·电子商务师·国际商务师·系统分析师·软件架构师·信息处理技术员·信息系统监理师·计算机英语最新公务员
       热 门 资 料 更多>>
     VisualC#编写3D游戏框架示例
     
       推 荐 资 料 更多>>

     VisualC#编写3D游戏框架示例

       考 试 辅 导 更多>>

       会 员 评 价(关于VisualC#编写3D游戏框架示例的评价)
        网站介绍∶小陈老师的21世纪考试网,办的非常成功,极具口碑。全站拥有超过40G教学视频,八百套真题,三千篇模拟测试题,四万套学习资料和全面系统的教学文章。与一般公务员考试相比,我们无须注册、 永久免费提供学习帮助,非常值得备战公务员考试的朋友们学习和参考。
      收藏本站 | 会员好评 | VIP俱乐部 | 联系我们
       相 关 资 料 更多>>
    复习资料VisualC#编写3D游戏框架示例
    如何在Java程序中实现FTP的上传下载功能
    新手学堂几个著名Java开源缓存框架介绍
    Java安全性综述安全性的基本要点
    区分Tomcat与Web服务器、应用服务器的关系
    宿主机WindowsXP与虚拟机Linux之间Telnet
    UbuntuLinux下AzureusNAT设置问题解决
    WindowsXP管理搞定Vista、XP双系统
    Linux系统下检测U盘是否已连接的方法
    深入剖析WindowsVista音量种类全介绍
    WindowsXP系统下安装apache+php+mysql
    电脑操作误区面面观
    系统基础格式化磁盘分区须谨慎
    选择一款最“合身”的操作系统
    防范在先关于电脑病毒基础知识的识别
    安装网卡驱动常见故障及解决方法
    微软推出MCM新认证为MCA认证必要前提
    湖南2008年下半年湖南省软考报考工作实施细则
    福建:08年下半年软考名称、时间及科目表
    福建:2008年下半年软考报考简章
    福建08年下半年计算机软件考试各报名点现场服务
    2008年VisualC#编写3D游戏框架示例
       资料搜索一点通
       课 程 学 习 更多>>

       网 站 辅 导 更多>>
    公务员考试: 新闻·政策·申论范文·精彩面式·行政能力·基础知识·招警考试
    认证类考试: 计算机等级·计算机软件·微软认证·Cisco认证
    学历类考试: 研究生考试·成人高考·自学考试·普通高考·MBA(MPA)考试·英语资料
    资格类考试: 注册会计师·导游证·统一司法·执业医师·精算师·保险经纪人·证券分析师·报关员考试
       热 门 专 题  

       会 员 帮 助  

    VisualC#编写3D游戏框架示例
    小雪客服/小艳客服(30分钟 内回答问题)
    QQ咨询业务咨询:569921419 代写文章业务咨询:点击留言 (上午8:30-晚上22:00)

    【查看留言】 【发表留言】


    备案:蜀ICP备05030541号 电话:0825-6699035 (0)13982585788 欢迎批评指正
    VIP俱乐部 | 我们优势 | 联系我们 | 支付平台 | 会员好评 | 友情链接 | 网站地图 | 版权申明 | 会员注册 | 常见问题
    CopyRight © 2006~2010 www.21ks.net All Rights Reserved
    荣誉出品:公务员之家 世纪秘书网 世纪考试网