Gamebryo LightSpeed引擎安装后,你可以在目录中看到这几个文件夹:Build,Documentation,Media,Samples,sdk,Source。Build文件夹包含整个引擎的工程文件,分为vc8和vc9。为了让我们更快的了解GB,引擎附带了很多例子。例子都在build文件夹下的sample的文件夹中,例子分为初级教程(Tutorials),图像demo(GraphicsTechDemos),物理demo(GraphicsTechDemos),小游戏demo(GameDemos)。我建议初学者从Tutorials开始,Tutorials工程包括9个子工程,以循序渐进的方法给你阐述GB的工作机制。
当你打开Samples01_Tutorials工程的时候,你会发现每个文件只有几行代码。第一个程序只是简单的显示一个窗口。例子中的每个类都是从NiSample或者是NiApplication中继承。为了调试方便,我建议你把NiApplication和NiSample两个子工程加入Samples01_Tutorials中。我们分析一个引擎首先是从winmain函数入手,NiAppMain.cpp就是WinMain函数的藏身之地。这个函数看起来很简单,首先调用NiInit()进行初始化,然后读取命令行参数,允许你从文件中读取。然后调用NiApplication::Create()函数new出一个例子对象,每个例子都要重载该函数。然后读取一些配置,读取配置后会调用windows函数RegisterClass函数注册一个窗口类,然后调用CreateMainWindow函数创建窗口。创建窗口后就进行系统的初始化,例如创建渲染器,摄像机,sharder,输入系统,场景,界面等。
不同的例子会对CreateScene函数进行重载,即创建不同的场景。创建完毕后进入主循环,MainLoop函数。和大多数程序一样,即消息的接收,处理。最后当你退出主循环后,会调用一些函数进行清理。