整理的一些关于C#方面的游戏编程资料
首先,我们注意到这个类是继承自system.windows.Forms.Form, Form类提供了所有操作窗体需要的功能。因此,当编写Windows应用程序的时候,需要从这个类继承。MainClass类还包括了一个变量名为device的Device类型的字段。Device类型用来表示一个Direct3D设备,我们将在后面的章节中具体介绍Direct3D设备的使用。
构造器
MainClass的构造器形如:
public MainClass()
{
this.ClientSize = new System.Drawing.Size(640, 480);
this.Text = “Direct3D Project”;
}
构造器设置窗口大小为640 × 480 ,然后设置窗口标题为“Direct3D Project”。当然这些值可以根据实际需要进行修改。
初始化图形
InitializeGraphics()方法是进行图形初始化工作的。关于图形初始化工作涉及的代码不只这么简单,这里生成的代码只是一个基本图形的初始化,对于一些图形初始化的详细介绍放在后面章节专门讨论。这里只是对已经生成的图形初始化代码作一个简单介绍,以便有一个整体认识。
public bool InitializeGraphics()
{
try
{
1 PresentParameters presentParams = new PresentParameters();
2 presentParams.Windowed = true;
3 presentParams.SwapEffect = SwapEffect.Discard;
4 device = new Device(0,
DeviceType.Hardware,
this,CreateFlags.SoftwareVertexProcessing,
presentParams);
5 device.DeviceLost += new EventHandler(this.InvalidateDeviceObjects);
6 device.DeviceReset += new EventHandler(this.RestoreDeviceObjects);
7 device.Disposing += new EventHandler(this.DeleteDeviceObjects);
8 device.DeviceResizing += new CancelEventHandler(this.EnvironmentResizing);
9 return true;
}
10 catch (DirectXException)
11 {
12 return false;
13 }
}
其中1-4行代码创建一个新的图形设备。虽然这几行代码不会让你对图形创建工作有一个整体认识,但是不用太着急,我们现在只需要如何创建一个图形设备,并使它能好好工作就可以了。
5-8行代码创建事件处理程序,也就是注册事件委托。前面注册的三个事件用来表明如何处理失去的