C#游戏编程资料(7)

2021-02-21 11:57

整理的一些关于C#方面的游戏编程资料

现在除了显示一个背景为蓝色的窗体外,什么都没有。你可以试着更改窗体大小和颜色以及添加一些按键事件处理代码,看看效果。

改善游戏框架

前面介绍的游戏框架是使用Sharpdevelop向导创建的,现在对它进行一些小小的改善,使之更易于使用,结构更清晰,更适合扩展游戏代码。

名称空间

举例来说,让新框架代码更简洁:通过使用using命令引入名称空间DirectX.Direct3D可以清楚知道类位于哪个名称空间。然而,大多数DirectX名称空间都有Device类,比如DirectSound.Device、DirectInput.Device,因此像下面代码的做法并不好。

using Microsoft.DirectX.Direct3D;

using Microsoft.DirectX.DirectSound;

如果定义Device类型的变量如Device d = null; 那么这个Device到底是Direct3D的Device呢,还是DirectSound的Device?因此,在新框架使用名称空间的别名来创建三个新的名称空间。

using Direct3D = Microsoft.DirectX.Direct3D;

using DirectSound = Microsoft.DirectX.DirectSound;

using DirectInput = Microsoft.DirectX.DirectInput;

现在就可以分别使用Direct3D.Device、DirectSound.Device和DirectInput.Device来区别不同种类的Device,从而增加程序的可读性。

MainClass类

新框架将MainClass类重新命名为Game类,虽然不重新命名对游戏运行而言没有任何负面引响,但是MainClass这个名字感觉就是傻傻的,不能准确表明类的职责。在Game类增加了几个静态变量,以便在需要更改它们的值时变得容易一些。

static string gametitle = “Advanced Framework”;

static int screenwidth = 640;

static int screenheight = 480;

想想前面的游戏框架,这些定义在MainClass类的构造器里面,如果要修改它们的值,就不得不去找到构造器。如果代码比较多,找起来还是比较麻烦,虽然开发环境有搜索功能。为了方便扩充功能,还添加了下面几个静态变量:

static bool paused = false; //游戏是否暂停

Direct3D.Device graphics = null; //图形设备

DirectSound.Device sound = null; //声音设备

DirectInput.Device keyboard = null; //键盘设备

DirectInput.Device mouse = null; //鼠标设备

DirectInput.Device gameinput = null; //游戏输入设备

方法

原来的框架使用InitializeGraphics方法只初始化Direct3D系统。在新框架中,它只是初始化工作的一个步骤,添加了另外两个初始化方法:InitializeSound()和InitializeInput()。可能大家已经知道它们用来完成什么工作——初始化声音设备和游戏输入设备。FrameMove方法名称重新命名为


C#游戏编程资料(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:等保测评3级-技术测评要求

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: