整理的一些关于C#方面的游戏编程资料
现在有一个简单的Direct3D的游戏框架,我们就可以在这个框架下编写游戏代码。在编写代码之前,我们先了解一下生成的文件结构及框架代码。
文件:
GameFrame.sln
GameFrame.csproj
AssemblyInfo.cs
MainClass.cs
开始两个文件分别是解决方案文件和项目文件。AssemblyInfo.cs是C #源文件包含的信息,主要用来设定生成的有关程序集的常规信息,也就是dll文件的一些参数。MainClass.cs这个源文件包含所有代码,也就是自动生成的Direct3D游戏程序的框架代码。这些代码都比较简单,没有太多的实现细节,下面我们就来了解一下生成的代码。
名称空间
代码的开始部分引入了以下名称空间:
using System;
using System.Collections;
using http://www.77cn.com.cnponentModel;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
对于前面两个名称空间,大多数程序员非常熟悉了。现在对另外5个名称空间说明如下:
http://www.77cn.com.cnponentmodel包含Windows应用程序基本控制行为所需要的大量的类
system.drawing包含用于绘图功能的类。
system.windows.forms包含显示窗体相关的类。
microsoft.directx包含DirectX信息的类。
microsoft.directx.direct3d包含关于Direct3D信息的类。
MainClass类
下面是MainClass类的结构。
public class MainClass : Form
{
Device device = null;
public MainClass()
public bool InitializeGraphics()
virtual void InvalidateDeviceObjects(object sender, EventArgs e)
virtual void RestoreDeviceObjects(object sender, EventArgs e)
virtual void DeleteDeviceObjects(object sender, EventArgs e)
virtual void EnvironmentResizing(object sender, CancelEventArgs e)
virtual void FrameMove()
virtual void Render()
public void Run()
override void OnPaint(PaintEventArgs e)
override void OnKeyPress(KeyPressEventArgs e)
static void Main()
}