设计本身的3D图像引擎(2): WuguiEngine之项目布局组织
副标题#e#
1. 项目文件夹组织:
本引擎中没有把各个源文件放在差异的文件夹之下,只是利用了VS2008的Filter成果,虚拟的分出了一些文件夹,在项目欣赏器中可以较量利便的看到
上面的图片是根基的一个组织环境:
Core内里是一些焦点的类, 好比说计时器等等
Document内里就是文档了
FX是Shader的代码
Graphics内里是渲染需要的类,内里又有一些文件夹:
Effect是Shader的一些类
Camera是摄像机的一些类
Scene是场景打点相关的
Include内里是将各个Filter内里的头文件分类组合起来,利便引用
这里的这些头文件对应着Filter内里的内容,一个头文件都引用了这个Filter内里的所有头文件.好比说WEExternal类就包括了需要引用外部库函数的时候的类,其内容看起来是这样的:
1: #ifndef _WEEXTERNAL_H
2: #define _WEEXTERNAL_H
3:
4: #include <map>
5: #include <algorithm>
6: #include <vector>
7: #include <list>
8: #include <string>
9: #include <iostream>
10: #include <iomanip>
11: #include <sstream>
12:
13: #include <windows.h>
14: #include <d3dx9.h>
15: #include <math.h>
16:
17: #endif
#p#副标题#e#
别的值得一提的是WuguiEngine.h包括了所有的.h文件,这个类是给外部的逻辑利用的
Interface包括了一些接口,好比说IRenderable, IUpdatable, IDisposed
Input顾名思义就是输入相关的一些类了
IO包括文件系统和读取文件等内容
MainLogic内里是放测试代码的,假如之后需要写游戏也是可以把内容放在这里,Mainlogic内里的代码和游戏引擎是疏散的
Math就不消说什么了,什么碰撞检测代码,一些小的数学函数都在这里
UI是给用户看的一些界面,今朝只放了一个在屏幕上面写字的类进去
在这些Filter外面的类就是一些杂七杂八的对象了
2. 定名空间组织:
定名空间的组织和Filter的组织是雷同的,这里就不说太多了,仅仅列一下代码:
该引擎主要包括下面的定名空间:
WuguiEngine : 引擎的一些最根基的Interface以及头文件
WuguiEngine::Core : 引擎所必需的一些类,好比GameTime等等
WuguiEngine::Graphics : 引擎的图像相关的内容,包罗场景打点以及其他的一些实现
WuguiEngine::IO : 引擎输入输出的内容
WuguiEngine::Math 引擎的数学库
WuguiEngine::Input : 输入相关的一些类
WuguiEngine::MainLogic : 作为引擎实现的一个措施(可以是测试措施)
WuguiEngine::UI : 引擎的界面的内容,包罗菜单,显示汉字等等
这篇文章就到此为止了,下一篇文章我将主要写写奈何构建一个可重用的Windows(WEWindow)类以及主要的游戏主轮回类BaseGame