整理的一些关于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方法名称重新命名为
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C#游戏编程资料(7)在线全文阅读。
相关推荐: