整理的一些关于C#方面的游戏编程资料
public void Run()
{
while (Created)
{
FrameMove();
Render();
Application.DoEvents();
}
}
Windows事件处理
每个Form窗体有建立在基本的Windows事件的事件处理程序,例如,按键和重绘场景。顺便提一下,这个框架也有处理这些事件的方法。
我们或许已经注意到并不需要在任何地方添加这些基本事件到任何事件委托,当行为发生后,Windows自动调用这些事件。
protected override void OnPaint(PaintEventArgs e)
{
this.Render();
}
OnPaint()事件发生在窗体需要被重绘的时候,比如,当其它窗体在游戏窗体之上并且被移开等等。框架简单地告诉呈现设备重新呈现场景。
按键事件
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
if ((int)e.KeyChar == (int)System.Windows.Forms.Keys.Escape)
{
this.Close();
}
}
首先调用基类的按键事件(base.OnKeyPress(e)),也就是Form.OnKeyPress,因为该方法做了一些基本事件的响应处理。比如,假如屏幕上有一些GUI组件,那么按下Tab键将使窗口焦点转到下一个GUI组件,这可以由Form.OnKeyPress方法来处理,而不需要重新编写自己的方法。然后,检查是否按下Escape键,如果按下,关闭当前的窗体。当然游戏进行中需要响应其它按键的处理逻辑也需要在这里实现。
Main方法
框架的最后部分就是应用程序的入口点——Main()方法。在这里仅仅创建并初始化一个MainClass对象,即游戏窗体。如果初始化窗体失败,则返回一个错误信息并退出程序;如果窗体创建成功,Main方法调用Show方法显示,并调用Run方法运行游戏逻辑。在后面介绍Show方法和Run方法的代码。
现在我们对生成的游戏框架有了一个整体认识。这个游戏框架是使用SharpDevelop开发环境创建的,如果使用Visual http://www.77cn.com.cn 2005开发环境来创建的话,则需要手动添加名称空间的引用和框架代码。无论使用哪种办法来创建框架,都需要安装DirectX SDK开发包,这个开发包可以在微软官方网站很容下载到。图1-3显示框架运行效果。